adding leaflet-hugo maps
This will hopefully allow me to create shortcode maps with osm and leaflet rather than google.
This commit is contained in:
		
							parent
							
								
									31bab3cf3b
								
							
						
					
					
						commit
						16bcf8b091
					
				
					 18 changed files with 2074 additions and 112 deletions
				
			
		| 
						 | 
				
			
			@ -1,44 +0,0 @@
 | 
			
		|||
baseURL = 'https://new.tfcconnection.org/'
 | 
			
		||||
languageCode = 'en-us'
 | 
			
		||||
title = 'TFC Connection'
 | 
			
		||||
theme = "blowfish"
 | 
			
		||||
 | 
			
		||||
DefaultContentLanguage = "en"
 | 
			
		||||
# SectionPagesMenu = "main"
 | 
			
		||||
enableRobotsTXT = true
 | 
			
		||||
 | 
			
		||||
Paginate = 10 # this is set low for demonstrating with dummy content. Set to a higher number
 | 
			
		||||
SummaryLength = 20
 | 
			
		||||
 | 
			
		||||
buildDrafts = false
 | 
			
		||||
buildFuture = false
 | 
			
		||||
outputs.home = ["HTML", "RSS", "JSON"]
 | 
			
		||||
 | 
			
		||||
[taxonomies]
 | 
			
		||||
  tag = "tags"
 | 
			
		||||
  category = "categories"
 | 
			
		||||
  author = "authors"
 | 
			
		||||
  series = "series"
 | 
			
		||||
 | 
			
		||||
[sitemap]
 | 
			
		||||
  changefreq = 'daily'
 | 
			
		||||
  filename = 'sitemap.xml'
 | 
			
		||||
  priority = 0.5
 | 
			
		||||
 | 
			
		||||
[params]
 | 
			
		||||
  favicon = "favicon-16x16.png"
 | 
			
		||||
  site_logo = "img/logo.png"
 | 
			
		||||
  description = "Connecting teens with the truth of Jesus Christ… teaching and equipping them to live out the Great Commission."
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Privacy
 | 
			
		||||
[privacy]
 | 
			
		||||
  [privacy.disqus]
 | 
			
		||||
    disable = true
 | 
			
		||||
  [privacy.googleAnalytics]
 | 
			
		||||
    disable = true
 | 
			
		||||
  [privacy.instagram]
 | 
			
		||||
  [privacy.twitter]
 | 
			
		||||
  [privacy.vimeo]
 | 
			
		||||
  [privacy.youtube]
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										56
									
								
								config/_default/config.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								config/_default/config.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
baseURL: 'https://new.tfcconnection.org/'
 | 
			
		||||
languageCode: en-us
 | 
			
		||||
title: TFC Connection
 | 
			
		||||
theme: blowfish
 | 
			
		||||
DefaultContentLanguage: en
 | 
			
		||||
enableRobotsTXT: true
 | 
			
		||||
Paginate: 10
 | 
			
		||||
SummaryLength: 20
 | 
			
		||||
buildDrafts: false
 | 
			
		||||
buildFuture: false
 | 
			
		||||
outputs:
 | 
			
		||||
  home:
 | 
			
		||||
    - HTML
 | 
			
		||||
    - RSS
 | 
			
		||||
    - JSON
 | 
			
		||||
taxonomies:
 | 
			
		||||
  tag: tags
 | 
			
		||||
  category: categories
 | 
			
		||||
  author: authors
 | 
			
		||||
  series: series
 | 
			
		||||
sitemap:
 | 
			
		||||
  changefreq: daily
 | 
			
		||||
  filename: sitemap.xml
 | 
			
		||||
  priority: 0.5
 | 
			
		||||
params:
 | 
			
		||||
  favicon: favicon-16x16.png
 | 
			
		||||
  site_logo: img/logo.png
 | 
			
		||||
  description: >-
 | 
			
		||||
    Connecting teens with the truth of Jesus Christ… teaching and equipping them
 | 
			
		||||
    to live out the Great Commission.
 | 
			
		||||
  hugoLeaflet:
 | 
			
		||||
    css:
 | 
			
		||||
      - href: "https://unpkg.com/leaflet@1.6.0/dist/leaflet.css"
 | 
			
		||||
        params:
 | 
			
		||||
          integrity: "sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="
 | 
			
		||||
        crossorigin: ""
 | 
			
		||||
      - href: "https://unpkg.com/@raruto/leaflet-elevation@1.1.1/dist/leaflet-elevation.css"
 | 
			
		||||
      - href: "css/leaflet.extra-markers.min.css"
 | 
			
		||||
    js:
 | 
			
		||||
      - src: "https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"
 | 
			
		||||
        params:
 | 
			
		||||
          integrity: "sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew=="
 | 
			
		||||
        crossorigin: ""
 | 
			
		||||
      - src: "js/leaflet.elevation.js"
 | 
			
		||||
      - src: "js/leaflet.hugo.js"
 | 
			
		||||
      - src: "js/leaflet.extra-markers.min.js"
 | 
			
		||||
 | 
			
		||||
privacy:
 | 
			
		||||
  disqus:
 | 
			
		||||
    disable: true
 | 
			
		||||
  googleAnalytics:
 | 
			
		||||
    disable: true
 | 
			
		||||
  instagram: {}
 | 
			
		||||
  twitter: {}
 | 
			
		||||
  vimeo: {}
 | 
			
		||||
  youtube: {}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,58 +0,0 @@
 | 
			
		|||
colorScheme = "blowfish"
 | 
			
		||||
defaultAppearance = "dark"
 | 
			
		||||
autoSwitchAppearance = false
 | 
			
		||||
enableSearch = true
 | 
			
		||||
logo = "logo.png"
 | 
			
		||||
 | 
			
		||||
[author]
 | 
			
		||||
name = "TFC Connection"
 | 
			
		||||
links = [
 | 
			
		||||
  {facebook = "https://facebook.com/tfcconnection"},
 | 
			
		||||
  {instagram = "https://instagram.com/tfcconnection"}
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[header]
 | 
			
		||||
  layout = "basic"
 | 
			
		||||
 | 
			
		||||
[homepage]
 | 
			
		||||
  layout = "page" # valid options: page, profile, hero, card, background, custom
 | 
			
		||||
  # homepageImage = "/img/iceland.jpg" # used in: hero, and card
 | 
			
		||||
  showRecent = false
 | 
			
		||||
  showRecentItems = 5
 | 
			
		||||
  showMoreLink = true
 | 
			
		||||
  showMoreLinkDest = "docs"
 | 
			
		||||
 | 
			
		||||
[article]
 | 
			
		||||
  showDate = false
 | 
			
		||||
  showDateUpdated = false
 | 
			
		||||
  showAuthor = true
 | 
			
		||||
  showHero = true
 | 
			
		||||
  heroStyle = "background" # valid options: basic, big, background
 | 
			
		||||
  showBreadcrumbs = true
 | 
			
		||||
  showDraftLabel = true
 | 
			
		||||
  showEdit = true
 | 
			
		||||
  seriesOpened = false
 | 
			
		||||
  showHeadingAnchors = true
 | 
			
		||||
  showPagination = true
 | 
			
		||||
  invertPagination = false
 | 
			
		||||
  showReadingTime = false
 | 
			
		||||
  showTableOfContents = true
 | 
			
		||||
  showTaxonomies = true 
 | 
			
		||||
  showAuthorsBadges = true 
 | 
			
		||||
  showWordCount = false
 | 
			
		||||
  showSummary = true
 | 
			
		||||
  sharingLinks = [ "twitter", "reddit", "facebook", "instagram", "email"]
 | 
			
		||||
 | 
			
		||||
[list]
 | 
			
		||||
  showBreadcrumbs = true
 | 
			
		||||
  showSummary = true
 | 
			
		||||
  showTableOfContents = true
 | 
			
		||||
  showCards = true
 | 
			
		||||
  groupByYear = false
 | 
			
		||||
 | 
			
		||||
[footer]
 | 
			
		||||
  showMenu = true
 | 
			
		||||
  showCopyright = true
 | 
			
		||||
  showThemeAttribution = true
 | 
			
		||||
  showAppearanceSwitcher = false
 | 
			
		||||
  showScrollToTop = true
 | 
			
		||||
							
								
								
									
										55
									
								
								config/_default/params.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								config/_default/params.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
colorScheme: blowfish
 | 
			
		||||
defaultAppearance: dark
 | 
			
		||||
autoSwitchAppearance: false
 | 
			
		||||
enableSearch: true
 | 
			
		||||
logo: logo.png
 | 
			
		||||
author:
 | 
			
		||||
  name: TFC Connection
 | 
			
		||||
  links:
 | 
			
		||||
    - facebook: 'https://facebook.com/tfcconnection'
 | 
			
		||||
    - instagram: 'https://instagram.com/tfcconnection'
 | 
			
		||||
header:
 | 
			
		||||
  layout: basic
 | 
			
		||||
homepage:
 | 
			
		||||
  layout: page
 | 
			
		||||
  showRecent: false
 | 
			
		||||
  showRecentItems: 5
 | 
			
		||||
  showMoreLink: true
 | 
			
		||||
  showMoreLinkDest: docs
 | 
			
		||||
article:
 | 
			
		||||
  showDate: false
 | 
			
		||||
  showDateUpdated: false
 | 
			
		||||
  showAuthor: true
 | 
			
		||||
  showHero: true
 | 
			
		||||
  heroStyle: background
 | 
			
		||||
  showBreadcrumbs: true
 | 
			
		||||
  showDraftLabel: true
 | 
			
		||||
  showEdit: true
 | 
			
		||||
  seriesOpened: false
 | 
			
		||||
  showHeadingAnchors: true
 | 
			
		||||
  showPagination: true
 | 
			
		||||
  invertPagination: false
 | 
			
		||||
  showReadingTime: false
 | 
			
		||||
  showTableOfContents: true
 | 
			
		||||
  showTaxonomies: true
 | 
			
		||||
  showAuthorsBadges: true
 | 
			
		||||
  showWordCount: false
 | 
			
		||||
  showSummary: true
 | 
			
		||||
  sharingLinks:
 | 
			
		||||
    - twitter
 | 
			
		||||
    - reddit
 | 
			
		||||
    - facebook
 | 
			
		||||
    - instagram
 | 
			
		||||
    - email
 | 
			
		||||
list:
 | 
			
		||||
  showBreadcrumbs: true
 | 
			
		||||
  showSummary: true
 | 
			
		||||
  showTableOfContents: true
 | 
			
		||||
  showCards: true
 | 
			
		||||
  groupByYear: false
 | 
			
		||||
footer:
 | 
			
		||||
  showMenu: true
 | 
			
		||||
  showCopyright: true
 | 
			
		||||
  showThemeAttribution: true
 | 
			
		||||
  showAppearanceSwitcher: false
 | 
			
		||||
  showScrollToTop: true
 | 
			
		||||
| 
						 | 
				
			
			@ -54,6 +54,7 @@
 | 
			
		|||
      {{ if .Site.Params.enableSearch | default false }}
 | 
			
		||||
      {{- partial "search.html" . -}}
 | 
			
		||||
      {{ end }}
 | 
			
		||||
      {{ partial "leaflet-loader" . }}
 | 
			
		||||
    </div>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										21
									
								
								layouts/partials/leaflet-loader.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								layouts/partials/leaflet-loader.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
{{ range $.Site.Params.hugoLeaflet.css }}
 | 
			
		||||
    <link rel="stylesheet" href="{{ .href }}" crossorigin="{{ .crossorigin }}" {{ range $key, $value := .params }} {{ $key | safeURL }}="{{ $value }}" {{ end }} />
 | 
			
		||||
{{ end }}
 | 
			
		||||
 | 
			
		||||
{{ range $.Site.Params.hugoLeaflet.js }}
 | 
			
		||||
    <script src="{{ .src }}" crossorigin="{{ .crossorigin }}" {{ range $key, $value := .params }} {{ $key | safeURL }}="{{ $value }}" {{ end }} ></script>
 | 
			
		||||
{{ end }}
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
    .fa-icon-marker {
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        width: 100%;
 | 
			
		||||
    }
 | 
			
		||||
    .download-track {
 | 
			
		||||
        background-color: #e1e1e1;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        margin-bottom: 25px;
 | 
			
		||||
        border-radius: 0 0 10px 10px;
 | 
			
		||||
        cursor: pointer;
 | 
			
		||||
    }
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										30
									
								
								layouts/shortcodes/leaflet-map.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								layouts/shortcodes/leaflet-map.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
{{ if .IsNamedParams }}
 | 
			
		||||
 | 
			
		||||
{{ $mapLat := default "" (.Get "mapLat") }}
 | 
			
		||||
{{ $mapLon := default "" (.Get "mapLon") }}
 | 
			
		||||
{{ $zoom := default "13" (.Get "zoom") }}
 | 
			
		||||
{{ $mapWidth := default "100%" (.Get "mapWidth") }}
 | 
			
		||||
{{ $mapHeight := default "400px" (.Get "mapHeight") }}
 | 
			
		||||
{{ $mapId := default (md5 (printf "%s%s" $mapLat $mapLon)) (.Get "mapId") }}
 | 
			
		||||
{{ $scrollWheelZoom := default "true" (.Get "scrollWheelZoom") }}
 | 
			
		||||
 | 
			
		||||
<!--Container-->
 | 
			
		||||
<div id='mapid_{{ $mapId }}' class="leaflet-map" style='width: {{ $mapWidth }}; height: {{ $mapHeight}};'></div>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
    //Create Map
 | 
			
		||||
    leafletMapsObj[{{ $mapId }}] = L.map('mapid_{{ $mapId }}').setView([{{ $mapLat }}, {{ $mapLon }}], {{ $zoom }});
 | 
			
		||||
    {{ if eq $scrollWheelZoom "false" }}
 | 
			
		||||
        leafletMapsObj[{{ $mapId }}].scrollWheelZoom.disable();
 | 
			
		||||
    {{ end }}
 | 
			
		||||
    //Add tiles
 | 
			
		||||
    L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
 | 
			
		||||
        attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
 | 
			
		||||
    }).addTo(leafletMapsObj[{{ $mapId }}]);
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
{{.Inner}}
 | 
			
		||||
 | 
			
		||||
{{ else }}
 | 
			
		||||
{{ errorf "Leaflet Hugo Shortcode: please provide named Parameters" }}
 | 
			
		||||
{{ end }}
 | 
			
		||||
							
								
								
									
										32
									
								
								layouts/shortcodes/leaflet-marker.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								layouts/shortcodes/leaflet-marker.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
{{ if .IsNamedParams }}
 | 
			
		||||
 | 
			
		||||
{{ $markerLat := default "" (.Get "markerLat") }}
 | 
			
		||||
{{ $markerLon := default "" (.Get "markerLon") }}
 | 
			
		||||
{{ $markerContent := default "" (.Get "markerContent") }}
 | 
			
		||||
 | 
			
		||||
    {{ with .Parent }}
 | 
			
		||||
 | 
			
		||||
        {{ $mapLat := default "" (.Get "mapLat") }}
 | 
			
		||||
        {{ $mapLon := default "" (.Get "mapLon") }}
 | 
			
		||||
        {{ $mapId := default (md5 (printf "%s%s" $mapLat $mapLon)) (.Get "mapId") }}
 | 
			
		||||
        {{ $markerId := md5 (printf "%s%s%s" $mapId $markerLat $markerLon)}}
 | 
			
		||||
 | 
			
		||||
        <script>
 | 
			
		||||
            //Marker
 | 
			
		||||
            leafletMarkersObj[{{ $markerId }}] = L.marker([{{ $markerLat }}, {{ $markerLon }}]).addTo(leafletMapsObj[{{ $mapId }}]);
 | 
			
		||||
 | 
			
		||||
            {{ if $markerContent }}
 | 
			
		||||
                leafletMarkersObj[{{ $markerId }}].bindPopup("{{ $markerContent }}").openPopup();
 | 
			
		||||
            {{ end }}
 | 
			
		||||
        </script>
 | 
			
		||||
 | 
			
		||||
    {{ else }}
 | 
			
		||||
    {{ errorf "Leaflet Hugo Shortcode: impossible using marker outside leaflet-map" }}
 | 
			
		||||
    {{ end }}
 | 
			
		||||
 | 
			
		||||
{{ else }}
 | 
			
		||||
{{ errorf "Leaflet Hugo Shortcode: please provide named Parameters for marker" }}
 | 
			
		||||
{{ end }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										82
									
								
								layouts/shortcodes/leaflet-track.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								layouts/shortcodes/leaflet-track.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
{{ if .IsNamedParams }}
 | 
			
		||||
 | 
			
		||||
{{ $trackPath := default "" (.Get "trackPath") }}
 | 
			
		||||
{{ $lineColor := default "#006EFF" (.Get "lineColor") }}
 | 
			
		||||
{{ $lineWeight := default "3" (.Get "lineWeight") }}
 | 
			
		||||
{{ $lineOpacity := default "1" (.Get "lineOpacity") }}
 | 
			
		||||
 | 
			
		||||
{{ $graphPosition := default "topright" (.Get "graphPosition") }}
 | 
			
		||||
{{ $graphTheme := default "steelblue-theme" (.Get "graphTheme") }}
 | 
			
		||||
{{ $graphWidth := default "500" (.Get "graphWidth") }}
 | 
			
		||||
{{ $graphHeight := default "150" (.Get "graphHeight") }}
 | 
			
		||||
{{ $graphFollowMarker := default false (.Get "graphFollowMarker") }}
 | 
			
		||||
{{ $graphCollapsed := default false (.Get "graphCollapsed") }}
 | 
			
		||||
{{ $graphDetached := default true (.Get "graphDetached") }}
 | 
			
		||||
 | 
			
		||||
{{ $markerIcon := default "fa-thumb-tack" (.Get "markerIcon") }}
 | 
			
		||||
{{ $markerIconColor := default "cyan" (.Get "markerIconColor") }}
 | 
			
		||||
{{ $markerIconShape := default "penta" (.Get "markerIconShape") }}
 | 
			
		||||
{{ $markerIconClasses := default "fa-icon-marker" (.Get "markerIconClasses") }}
 | 
			
		||||
{{ $markerStartIcon := default "fa-play" (.Get "markerStartIcon") }}
 | 
			
		||||
{{ $markerStartIconColor := default "green-light" (.Get "markerStartIconColor") }}
 | 
			
		||||
{{ $markerStartIconShape := default "circle" (.Get "markerStartIconShape") }}
 | 
			
		||||
{{ $markerStartIconClasses := default "fa-icon-marker fa-icon-start-stop" (.Get "markerStartIconClasses") }}
 | 
			
		||||
{{ $markerEndIcon := default "fa-flag-checkered" (.Get "markerEndIcon") }}
 | 
			
		||||
{{ $markerEndIconColor := default "red" (.Get "markerEndIconColor") }}
 | 
			
		||||
{{ $markerEndIconShape := default "circle" (.Get "markerEndIconShape") }}
 | 
			
		||||
{{ $markerEndIconClasses := default "fa-icon-marker fa-icon-start-stop" (.Get "markerEndIconClasses") }}
 | 
			
		||||
 | 
			
		||||
{{ with .Parent }}
 | 
			
		||||
 | 
			
		||||
{{ $mapLat := default "" (.Get "mapLat") }}
 | 
			
		||||
{{ $mapLon := default "" (.Get "mapLon") }}
 | 
			
		||||
{{ $mapId := default (md5 (printf "%s%s" $mapLat $mapLon)) (.Get "mapId") }}
 | 
			
		||||
{{ $trackId := md5 (printf "%s%s" $mapId $trackPath)}}
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
    trackOpts = {
 | 
			
		||||
        mapId: "{{ $mapId }}",
 | 
			
		||||
        trackId: "{{ $trackId }}",
 | 
			
		||||
        trackPath: '{{ "gpx" | absURL }}/{{$trackPath}}',
 | 
			
		||||
        lineColor: "{{ $lineColor }}",
 | 
			
		||||
        lineWeight: "{{ $lineWeight }}",
 | 
			
		||||
        lineOpacity: "{{ $lineOpacity }}"
 | 
			
		||||
    };
 | 
			
		||||
    elevationOpts = {
 | 
			
		||||
        graphPosition: "{{ $graphPosition }}",
 | 
			
		||||
        graphTheme: "{{ $graphTheme }}",
 | 
			
		||||
        graphWidth: "{{ $graphWidth }}",
 | 
			
		||||
        graphHeight: "{{ $graphHeight }}",
 | 
			
		||||
        graphFollowMarker: {{ $graphFollowMarker }},
 | 
			
		||||
        graphCollapsed: {{ $graphCollapsed }},
 | 
			
		||||
        graphDetached: {{ $graphDetached }}
 | 
			
		||||
    };
 | 
			
		||||
    markerOpts = {
 | 
			
		||||
        icon: "{{ $markerIcon }}",
 | 
			
		||||
        iconColor: "{{ $markerIconColor }}",
 | 
			
		||||
        iconShape: "{{ $markerIconShape }}",
 | 
			
		||||
        iconClasses: "{{ $markerIconClasses }}",
 | 
			
		||||
        iconStart: "{{ $markerStartIcon }}",
 | 
			
		||||
        iconStartColor: "{{ $markerStartIconColor }}",
 | 
			
		||||
        iconStartShape: "{{ $markerStartIconShape }}",
 | 
			
		||||
        iconStartClasses: "{{ $markerStartIconClasses }}",
 | 
			
		||||
        iconEnd: "{{ $markerEndIcon }}",
 | 
			
		||||
        iconEndColor: "{{ $markerEndIconColor }}",
 | 
			
		||||
        iconEndShape: "{{ $markerEndIconShape }}",
 | 
			
		||||
        iconEndClasses: "{{ $markerEndIconClasses }}"
 | 
			
		||||
    };
 | 
			
		||||
    drawTrack(trackOpts, elevationOpts, markerOpts);
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<div class="download-track" onclick="downloadFile('{{ "gpx" | absURL }}/{{ $trackPath }}');"><p class="download-track-link">Download</p></div>
 | 
			
		||||
 | 
			
		||||
{{ else }}
 | 
			
		||||
{{ errorf "Leaflet Hugo Shortcode: impossible using track outside leaflet-map" }}
 | 
			
		||||
{{ end }}
 | 
			
		||||
 | 
			
		||||
{{ else }}
 | 
			
		||||
{{ errorf "Leaflet Hugo Shortcode: please provide named Parameters for marker" }}
 | 
			
		||||
{{ end }}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								static/css/leaflet.extra-markers.min.css
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								static/css/leaflet.extra-markers.min.css
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								static/img/markers_default.png
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								static/img/markers_default.png
									
										
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 117 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/markers_default@2x.png
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								static/img/markers_default@2x.png
									
										
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 248 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/markers_shadow.png
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								static/img/markers_shadow.png
									
										
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 535 B  | 
							
								
								
									
										
											BIN
										
									
								
								static/img/markers_shadow@2x.png
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								static/img/markers_shadow@2x.png
									
										
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.4 KiB  | 
							
								
								
									
										1660
									
								
								static/js/leaflet.elevation.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1660
									
								
								static/js/leaflet.elevation.js
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										1
									
								
								static/js/leaflet.extra-markers.js.map
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								static/js/leaflet.extra-markers.js.map
									
										
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										10
									
								
								static/js/leaflet.extra-markers.min.js
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								static/js/leaflet.extra-markers.min.js
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										108
									
								
								static/js/leaflet.hugo.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								static/js/leaflet.hugo.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,108 @@
 | 
			
		|||
let leafletMapsObj = {};
 | 
			
		||||
let leafletMarkersObj = {};
 | 
			
		||||
 | 
			
		||||
function drawTrack(trackOpts, elevationOpts, markerOpts) {
 | 
			
		||||
    var opts = {
 | 
			
		||||
        elevationControl: {
 | 
			
		||||
            options: {
 | 
			
		||||
                position: elevationOpts.graphPosition,
 | 
			
		||||
                theme: elevationOpts.graphTheme,
 | 
			
		||||
                width: elevationOpts.graphWidth,
 | 
			
		||||
                height: elevationOpts.graphHeight,
 | 
			
		||||
                margins: {
 | 
			
		||||
                    top: 20,
 | 
			
		||||
                    right: 20,
 | 
			
		||||
                    bottom: 35,
 | 
			
		||||
                    left: 50
 | 
			
		||||
                },
 | 
			
		||||
                followMarker: elevationOpts.graphFollowMarker,
 | 
			
		||||
                collapsed: elevationOpts.graphCollapsed,
 | 
			
		||||
                detached: elevationOpts.graphDetached,
 | 
			
		||||
                legend: false,
 | 
			
		||||
                summary: false,
 | 
			
		||||
                downloadLink: '',
 | 
			
		||||
                gpxOptions: {
 | 
			
		||||
                    polyline_options: {
 | 
			
		||||
                        className: 'track-' + trackOpts.trackId + '-',
 | 
			
		||||
                        color: trackOpts.lineColor,
 | 
			
		||||
                        opacity: trackOpts.lineOpacity,
 | 
			
		||||
                        weight: trackOpts.lineWeight,
 | 
			
		||||
                    },
 | 
			
		||||
                    marker_options: {
 | 
			
		||||
                        startIcon: new L.ExtraMarkers.icon({
 | 
			
		||||
                            icon: markerOpts.iconStart,
 | 
			
		||||
                            markerColor: markerOpts.iconStartColor,
 | 
			
		||||
                            shape: markerOpts.iconStartShape,
 | 
			
		||||
                            prefix: 'fa',
 | 
			
		||||
                            extraClasses: markerOpts.iconStartClasses
 | 
			
		||||
                        }),
 | 
			
		||||
                        endIcon: new L.ExtraMarkers.icon({
 | 
			
		||||
                            icon: markerOpts.iconEnd,
 | 
			
		||||
                            markerColor: markerOpts.iconEndColor,
 | 
			
		||||
                            shape: markerOpts.iconEndShape,
 | 
			
		||||
                            prefix: 'fa',
 | 
			
		||||
                            extraClasses: markerOpts.iconEndClasses
 | 
			
		||||
                        }),
 | 
			
		||||
                        wptIcons: {
 | 
			
		||||
                            '': new L.ExtraMarkers.icon({
 | 
			
		||||
                                icon: markerOpts.icon,
 | 
			
		||||
                                markerColor: markerOpts.iconColor,
 | 
			
		||||
                                shape: markerOpts.iconShape,
 | 
			
		||||
                                prefix: 'fa',
 | 
			
		||||
                                extraClasses:  markerOpts.iconClasses,
 | 
			
		||||
                            })
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    L.control.elevation(opts.elevationControl.options).addTo(leafletMapsObj[trackOpts.mapId]).load(trackOpts.trackPath);
 | 
			
		||||
 | 
			
		||||
    /*map.on('eledata_loaded', function(e) {
 | 
			
		||||
        track = e.track_info;
 | 
			
		||||
    });*/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
window.downloadFile = function (sUrl) {
 | 
			
		||||
 | 
			
		||||
    //iOS devices do not support downloading. We have to inform user about this.
 | 
			
		||||
    if (/(iP)/g.test(navigator.userAgent)) {
 | 
			
		||||
        alert('Your device does not support files downloading. Please try again in desktop browser.');
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //If in Chrome or Safari - download via virtual link click
 | 
			
		||||
    if (window.downloadFile.isChrome || window.downloadFile.isSafari) {
 | 
			
		||||
        //Creating new link node.
 | 
			
		||||
        var link = document.createElement('a');
 | 
			
		||||
        link.href = sUrl;
 | 
			
		||||
 | 
			
		||||
        if (link.download !== undefined) {
 | 
			
		||||
            //Set HTML5 download attribute. This will prevent file from opening if supported.
 | 
			
		||||
            var fileName = sUrl.substring(sUrl.lastIndexOf('/') + 1, sUrl.length);
 | 
			
		||||
            link.download = fileName;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Dispatching click event.
 | 
			
		||||
        if (document.createEvent) {
 | 
			
		||||
            var e = document.createEvent('MouseEvents');
 | 
			
		||||
            e.initEvent('click', true, true);
 | 
			
		||||
            link.dispatchEvent(e);
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Force file download (whether supported by server).
 | 
			
		||||
    if (sUrl.indexOf('?') === -1) {
 | 
			
		||||
        sUrl += '?download';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    window.open(sUrl, '_self');
 | 
			
		||||
    return true;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
window.downloadFile.isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
 | 
			
		||||
window.downloadFile.isSafari = navigator.userAgent.toLowerCase().indexOf('safari') > -1;
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue