doctype html html(itemscope, itemtype='http://schema.org/Product') block vars head script(type="text/javascript"). // Stop superfish from loading window.similarproducts = true style [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {display: none !important; display: none; } -if (typeof(gaExperiments) != "undefined") |!{gaExperiments} -if (typeof(title) == "undefined") title= 'ShareLaTeX, '+ translate("online_latex_editor") -else title= translate(title) + ' - ShareLaTeX, ' + translate("online_latex_editor") link(rel="icon", href="/favicon.ico") link(rel='stylesheet', href=buildCssPath('/style.css')) if settings.i18n.subdomainLang each subdomainDetails in settings.i18n.subdomainLang if !subdomainDetails.hide link(rel="alternate", href=subdomainDetails.url+currentUrl, hreflang=subdomainDetails.lngCode) meta(itemprop="name", content="ShareLaTeX, the Online LaTeX Editor") -if (typeof(meta) == "undefined") meta(itemprop="description", name="description", content='#{translate("site_description")}') -else meta(itemprop="description", name="description" , content=meta) meta(itemprop="image", name="image", content="https://www.sharelatex.com/favicon.ico") - if (typeof(gaToken) != "undefined") script(type='text/javascript'). (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', '#{gaToken}', 'sharelatex.com'); ga('send', 'pageview'); - else script(type='text/javascript'). window.ga = function() { console.log("would send to GA", arguments) }; // Countly Analytics if (settings.analytics && settings.analytics.countly && settings.analytics.countly.token) script(type="text/javascript"). var Countly = Countly || {}; Countly.q = Countly.q || []; Countly.app_key = '#{settings.analytics.countly.token}'; Countly.url = '#{settings.analytics.countly.server}'; !{ session.user ? 'Countly.device_id = "' + session.user._id + '";' : '' } Countly.q.push(['track_sessions']); Countly.q.push(['track_pageview']); (function() { var cly = document.createElement('script'); cly.type = 'text/javascript'; cly.async = true; //enter url of script here cly.src = 'https://cdnjs.cloudflare.com/ajax/libs/countly-sdk-web/16.6.0/countly.min.js'; cly.onload = function(){Countly.init()}; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(cly, s); })(); script(type="text/javascript") if (session && session.user) - var name = session.user.first_name + (session.user.last_name ? ' ' + session.user.last_name : ''); | Countly.q.push(['user_details', { email: '#{session.user.email}', name: '#{name}' }]); if (justRegistered) | Countly.q.push(['add_event',{ key: 'user-registered' }]); if (justLoggedIn) | Countly.q.push(['add_event',{ key: 'user-logged-in' }]); if (user && user.features) - featureFlagSet = false; if user.features.hasOwnProperty('collaborators') | Countly.q.push([ 'userData.set', 'features-collaborators', #{ user.features.collaborators } ]); - featureFlagSet = true; if user.features.hasOwnProperty('compileGroup') | Countly.q.push([ 'userData.set', 'features-compileGroup', '#{ user.features.compileGroup }' ]); - featureFlagSet = true; if user.features.hasOwnProperty('compileTimeout') | Countly.q.push([ 'userData.set', 'features-compileTimeout', #{ user.features.compileTimeout } ]); - featureFlagSet = true; if user.features.hasOwnProperty('dropbox') | Countly.q.push([ 'userData.set', 'features-dropbox', #{ user.features.dropbox } ]); - featureFlagSet = true; if user.features.hasOwnProperty('github') | Countly.q.push([ 'userData.set', 'features-github', #{ user.features.github } ]); - featureFlagSet = true; if user.features.hasOwnProperty('references') | Countly.q.push([ 'userData.set', 'features-references', #{ user.features.references } ]); - featureFlagSet = true; if user.features.hasOwnProperty('templates') | Countly.q.push([ 'userData.set', 'features-templates', #{ user.features.templates } ]); - featureFlagSet = true; if user.features.hasOwnProperty('versioning') | Countly.q.push([ 'userData.set', 'features-versioning', #{ user.features.versioning } ]); - featureFlagSet = true; if featureFlagSet | Countly.q.push(['userData.save']) // End countly Analytics script(type="text/javascript"). window.csrfToken = "#{csrfToken}"; block scripts script(src=buildJsPath("libs/jquery-1.11.1.min.js")) script(src=buildJsPath("libs/angular-1.3.15.min.js")) script. window.sharelatex = { siteUrl: '#{settings.siteUrl}', jsPath: '#{jsPath}', sixpackDomain: '#{settings.sixpack.domain}' }; window.systemMessages = !{JSON.stringify(systemMessages).replace(/\//g, '\\/')}; window.ab = {}; window.user_id = '#{getLoggedInUserId()}'; - if (typeof(settings.algolia) != "undefined") script. window.sharelatex.algolia = { app_id:'#{settings.algolia.app_id}', api_key:'#{settings.algolia.read_only_api_key}', indexes:!{JSON.stringify(settings.algolia.indexes)} } - if (typeof(settings.templates) != "undefined") script. window.sharelatex.templates = { user_id : '!{settings.templates.user_id}', cdnDomain : '!{settings.templates.cdnDomain}', indexName : '!{settings.templates.indexName}' } body - if(typeof(suppressSystemMessages) == "undefined") .system-messages( ng-cloak ng-controller="SystemMessagesController" ) .system-message( ng-repeat="message in messages" ng-controller="SystemMessageController" ng-hide="hidden" ) a(href, ng-click="hide()").pull-right × .system-message-content(ng-bind-html="htmlContent") include translations/translation_message - if(typeof(suppressNavbar) == "undefined") include layout/navbar block content div(ng-controller="AbTestController") - if(typeof(suppressFooter) == "undefined") include layout/footer - if (typeof(lookingForScribtex) != "undefined" && lookingForScribtex) span(ng-controller="ScribtexPopupController") include scribtex-modal - if(typeof(suppressFooter) == "undefined") script(type='text/javascript'). window.requirejs = { "urlArgs" : "fingerprint=#{fingerprint(jsPath + 'main.js')}-#{fingerprint(jsPath + 'libs.js')}", "paths" : { "moment": "libs/moment-2.7.0" } }; script( data-main=jsPath+'main.js', baseurl=jsPath, src=buildJsPath('libs/require.js') ) include contact-us-modal include sentry