<commit_before><?php ///////////////////////////////////////////////////////
// ----------------------------------------------------------
// PARTIAL :: MOBILE
// ----------------------------------------------------------
/////////////////////////////////////////////////////////////

// Read assets json
$assets_css = f::read(server::get('document_root') . ((c::get('url') != '/') ? c::get('url') . '/' : c::get('url', '/')) . 'assets/stylesheets/min/hash.css.json');
$assets_js = f::read(server::get('document_root') . ((c::get('url') != '/') ? c::get('url') . '/' : c::get('url', '/')) . 'assets/javascript/min/hash.js.json');

// Set assets based on environment
if(c::get('environment') == 'local'):
	$env_suffix = 'dev';
	// $mobile_css = 'mobile.dev';
	$mobile_css = 'main.dev';
	$print_css = 'print.dev';
	$head_js = 'head.scripts.dev';
	$mobile_js = 'mobile.scripts.dev';
	$photoswipe_js = 'photoswipe.scripts.dev';
else:
	$env_suffix = 'min';
	// $mobile_css = json_decode($assets_css)->mobile;
	$mobile_css = json_decode($assets_css)->main;
	$print_css = json_decode($assets_css)->print;
	$head_js = json_decode($assets_js)->head;
	$mobile_js = json_decode($assets_js)->mobile;
	$photoswipe_js = json_decode($assets_js)->photoswipe;
endif;

// Language(s)
if(c::get('language.multi', false)): $language_locale = $site->language()->locale();
else: $language_locale = c::get('language.locale', 'en'); endif;

// Page title
if($page->isHomePage()):
	if($site->descriptor()->isNotEmpty()): $pagetitle = ': ' . $site->descriptor()->smartypants()->titlecase();
	else: $pagetitle = ''; endif;
else:
	if($page->long_title()->isNotEmpty()): $pagetitle = ': ' . $page->long_title()->smartypants()->titlecase();
	else: $pagetitle = ': ' . $page->title()->smartypants()->titlecase(); endif;
endif;

// Meta description
if($page->isHomePage()):
	if($site->meta_description()->isNotEmpty()): $meta_description = $site->meta_description()->smartypants();
	else: $meta_description = ''; endif;
else:
	if($page->meta_description()->isNotEmpty()): $meta_description = $page->meta_description()->smartypants();
	elseif($site->meta_description()->isNotEmpty()): $meta_description = $site->meta_description()->smartypants();
	else: $meta_description = ''; endif;
endif;

// Variable to set 'critical' css file name to link to on a template basis.
// By default the varibale is set to 'default'. To link to another 'critical'
// css file, add name of another file to the include snippet (at the top
// of the template), like this:
// `snippet_detect('html_head', array('criticalcss' => 'another_criticalss_file'));`
$criticalcss = (isset($criticalcss)) ? $criticalcss : 'default';

// Variable to set next and previous rel="next/prev" links (e.g. news item,
// project detail, blogpost, etc.). To enable add a 'prev_next' array to the
// include snippet (at top of the template), like this:
// 'snippet_detect('html_head', array('prev_next' => true));'
$prev_next = (isset($prev_next)) ? $prev_next : false;

// Variable to set page template name to html element for styling purpose.
$page_template = ($page->intendedTemplate()) ? ' template-' . $page->intendedTemplate() : '';

// Check for the presence of Font Face Observer cookie (e.g. `fonts-loaded`)
// and if so adds `fonts-loaded` class to html element, to avoid re-downloading
// web fonts over and over again.
$fontobserver = (isset($_COOKIE['fonts-loaded']) && $_COOKIE['fonts-loaded'] == 'true') ? ' fonts-loaded' : '';

////////////////////////////////////////////////////////// ?>

<!doctype html>
<html class="no-js<?php echo $page_template . $fontobserver ?>" lang="<?php echo $language_locale; ?>">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width,initial-scale=1">

	<?php // Prefetch DNS for external assets (Typekit, Google APIs, etc). ?>
	<link rel="dns-prefetch" href="https://use.typekit.net">
	<link rel="dns-prefetch" href="https://fonts.googleapis.com">
	<link rel="dns-prefetch" href="https://ajax.googleapis.com">
	<link rel="dns-prefetch" href="https://maps.googleapis.com">
	<link rel="dns-prefetch" href="https://www.google-analytics.com">

	<?php // Preload assets (fonts, stylesheets, etc.) ?>
	<link rel="preload" href="<?php $site->url(); ?>/assets/fonts/firasans/firasans-bold.woff2" as="font" type="font/woff2">

	<title><?php echo $site->title()->smartypants() . $pagetitle; ?></title>

	<meta name="author" content="<?php echo $site->author()->smartypants(); ?>">
	<?php if($meta_description): ?><meta name="description" content="<?php echo $meta_description->smartypants(); ?>"><?php endif; ?>
	<meta name="robots" content="<?php if(c::get('environment') == 'local' || c::get('environment') == 'stage'): echo 'noindex, nofollow'; else: echo 'index, follow'; endif; ?>">

	<link rel="home" href="<?php echo $site->url(); ?>">
	<?php if(c::get('tinyurl.enabled') && !$page->isHomepage()): ?><link rel="shortlink" href="<?php echo $page->tinyurl(); ?>"><?php endif; ?> <?php // Shortlink, enable tinyurl in config.php ?>
	<link rel="sitemap" type="application/xml" title="<?php echo $site->title()->smartypants(); ?>: Sitemap" href="<?php echo (c::get('url') != '/') ? $site->url() . '/sitemap.xml' :  '/sitemap.xml'; ?>">
	<?php if($pages->has('blog')): ?><link rel="alternate" type="application/rss+xml" title="<?php echo $site->title()->smartypants(); ?>: <?php echo page('blog')->title()->smartypants(); ?> Feed" href="<?php echo (c::get('url') != '/') ? $site->url() . '/blog.rss' : '/blog.rss'; ?>"><?php endif; ?>
	<?php if($site->google_plus()->isNotEmpty()): ?><link rel="publisher" href="https://plus.google.com/<?php echo $site->google_plus(); ?>"><?php endif; ?>

	<?php if($site->app_name()->isNotEmpty()): ?><meta name="apple-mobile-web-app-title" content="<?php echo $site->app_name()->smartypants(); ?>"><?php // Custom bookmarked page title on iOS ?><?php endif; ?>
	<meta name="theme-color" content="<?php echo ($site->theme_color()->isNotEmpty()) ? $site->theme_color() : '#141414' ; ?>"><?php // For theme-color in Chrome 39+ for Android, task bar collor in the switcher (http://j.mp/1xVyGVc) ?>

	<link rel="apple-touch-icon" href="<?php echo url('/assets/images/apple-touch-icon-180x180.png'); ?>"><?php // Touch icons, iOS and Android, 180x180 pixels in size (http://j.mp/2fnrQmw, http://j.mp/2gpJVVF) ?>
	<link rel="icon" href="<?php echo url('/assets/images/favicon-192x192.png'); ?>"><?php // For Firefox, Chrome, Safari, IE 11+ and Opera, 192x192 pixels in size ?>
	<link rel="mask-icon" href="<?php echo url('/assets/images/pinned-icon.svg'); ?>" color="<?php echo ($site->theme_color()->isNotEmpty()) ? $site->theme_color() : '#141414' ; ?>"><?php // For Safari 9+ pinned tab (http://j.mp/2gpNiw9) ?>

	<?php // Next, previous and canonical rel links for all pages ?>
	<?php if(params()) : meta_prevnextcanonical_general($page); endif; ?>

	<?php // Next and previous rel links on specific pages (to use set $prev_next varibale in template) ?>
	<?php if($prev_next): meta_prevnextcanonical_single($page); endif; ?>

	<?php // Alternate language rel link(s) for matching languages in config and available text files (e.g. blogarticle.md, blogarticle.en.md) ?>
	<?php if(c::get('language.multi', false)): foreach($site->languages() as $language): if($site->languages()->count() > 1 && $site->language() != $language && isset($page->inventory()['content'][$language->code()])): ?><link rel="alternate" href="<?php echo $page->url($language->code()); ?>" hreflang="<?php echo $language->locale(); ?>"><?php endif; endforeach; endif; ?>

	<?php // Enhance stylesheets and scripts (https://github.com/filamentgroup/enhance) ?>
	<meta name="fullcss" content="<?php echo url('/assets/stylesheets/' . $env_suffix . '/' . $mobile_css . '.css'); ?>">
	<meta name="fulljs" content="<?php echo url('/assets/javascript/'. $env_suffix .'/' . $mobile_js . '.js'); ?>">
	<meta name="photoswipejs" content="<?php echo url('/assets/javascript/'. $env_suffix .'/' . $photoswipe_js . '.js'); ?>">
	<script><?php include_once(server::get('document_root') . '/assets/javascript/'. $env_suffix .'/' . $head_js . '.js'); ?></script>
	<?php if(isset($_COOKIE['fullcss']) && $_COOKIE['fullcss'] == 'true'): ?>
		<link rel="stylesheet" href="<?php echo url('/assets/stylesheets/' . $env_suffix . '/' . $mobile_css . '.css'); ?>">
	<?php else: ?>
		<style><?php if(c::get('environment') == 'local' || c::get('environment') == 'stage'): echo '/* ' . $criticalcss . ' css */' . "\n"; endif; include_once(server::get('document_root') . '/assets/stylesheets/critical/' . $criticalcss . '_mobile.css'); ?></style>
		<noscript><link rel="stylesheet" href="<?php echo url('/assets/stylesheets/' . $env_suffix . '/' . $mobile_css . '.css'); ?>"></noscript>
	<?php endif; ?>
	<link rel="stylesheet" href="<?php echo url('/assets/stylesheets/' . $env_suffix . '/' . $print_css . '.css'); ?>" media="print">

	<?php // Initialize JS variables for use later on ?>
	<script>var push_message = [];</script>

</head>
<body>
<commit_msg>Update order of meta tags in (mobile) HTML head.<commit_after><?php ///////////////////////////////////////////////////////
// ----------------------------------------------------------
// PARTIAL :: MOBILE
// ----------------------------------------------------------
/////////////////////////////////////////////////////////////

// Read assets json
$assets_css = f::read(server::get('document_root') . ((c::get('url') != '/') ? c::get('url') . '/' : c::get('url', '/')) . 'assets/stylesheets/min/hash.css.json');
$assets_js = f::read(server::get('document_root') . ((c::get('url') != '/') ? c::get('url') . '/' : c::get('url', '/')) . 'assets/javascript/min/hash.js.json');

// Set assets based on environment
if(c::get('environment') == 'local'):
	$env_suffix = 'dev';
	// $mobile_css = 'mobile.dev';
	$mobile_css = 'main.dev';
	$print_css = 'print.dev';
	$head_js = 'head.scripts.dev';
	$mobile_js = 'mobile.scripts.dev';
	$photoswipe_js = 'photoswipe.scripts.dev';
else:
	$env_suffix = 'min';
	// $mobile_css = json_decode($assets_css)->mobile;
	$mobile_css = json_decode($assets_css)->main;
	$print_css = json_decode($assets_css)->print;
	$head_js = json_decode($assets_js)->head;
	$mobile_js = json_decode($assets_js)->mobile;
	$photoswipe_js = json_decode($assets_js)->photoswipe;
endif;

// Language(s)
if(c::get('language.multi', false)): $language_locale = $site->language()->locale();
else: $language_locale = c::get('language.locale', 'en'); endif;

// Page title
if($page->isHomePage()):
	if($site->descriptor()->isNotEmpty()): $pagetitle = ': ' . $site->descriptor()->smartypants()->titlecase();
	else: $pagetitle = ''; endif;
else:
	if($page->long_title()->isNotEmpty()): $pagetitle = ': ' . $page->long_title()->smartypants()->titlecase();
	else: $pagetitle = ': ' . $page->title()->smartypants()->titlecase(); endif;
endif;

// Meta description
if($page->isHomePage()):
	if($site->meta_description()->isNotEmpty()): $meta_description = $site->meta_description()->smartypants();
	else: $meta_description = ''; endif;
else:
	if($page->meta_description()->isNotEmpty()): $meta_description = $page->meta_description()->smartypants();
	elseif($site->meta_description()->isNotEmpty()): $meta_description = $site->meta_description()->smartypants();
	else: $meta_description = ''; endif;
endif;

// Variable to set 'critical' css file name to link to on a template basis.
// By default the varibale is set to 'default'. To link to another 'critical'
// css file, add name of another file to the include snippet (at the top
// of the template), like this:
// `snippet_detect('html_head', array('criticalcss' => 'another_criticalss_file'));`
$criticalcss = (isset($criticalcss)) ? $criticalcss : 'default';

// Variable to set next and previous rel="next/prev" links (e.g. news item,
// project detail, blogpost, etc.). To enable add a 'prev_next' array to the
// include snippet (at top of the template), like this:
// 'snippet_detect('html_head', array('prev_next' => true));'
$prev_next = (isset($prev_next)) ? $prev_next : false;

// Variable to set page template name to html element for styling purpose.
$page_template = ($page->intendedTemplate()) ? ' template-' . $page->intendedTemplate() : '';

// Check for the presence of Font Face Observer cookie (e.g. `fonts-loaded`)
// and if so adds `fonts-loaded` class to html element, to avoid re-downloading
// web fonts over and over again.
$fontobserver = (isset($_COOKIE['fonts-loaded']) && $_COOKIE['fonts-loaded'] == 'true') ? ' fonts-loaded' : '';

////////////////////////////////////////////////////////// ?>

<!doctype html>
<html class="no-js<?php echo $page_template . $fontobserver ?>" lang="<?php echo $language_locale; ?>">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width,initial-scale=1">

	<?php // Prefetch DNS for external assets (Typekit, Google APIs, etc). ?>
	<link rel="dns-prefetch" href="https://use.typekit.net">
	<link rel="dns-prefetch" href="https://fonts.googleapis.com">
	<link rel="dns-prefetch" href="https://ajax.googleapis.com">
	<link rel="dns-prefetch" href="https://maps.googleapis.com">
	<link rel="dns-prefetch" href="https://www.google-analytics.com">

	<?php // Preload assets (fonts, stylesheets, etc.) ?>
	<link rel="preload" href="<?php $site->url(); ?>/assets/fonts/firasans/firasans-bold.woff2" as="font" type="font/woff2">

	<title><?php echo $site->title()->smartypants() . $pagetitle; ?></title>

	<meta name="author" content="<?php echo $site->author()->smartypants(); ?>">
	<?php if($meta_description): ?><meta name="description" content="<?php echo $meta_description->smartypants(); ?>"><?php endif; ?>
	<meta name="robots" content="<?php if(c::get('environment') == 'local' || c::get('environment') == 'stage'): echo 'noindex, nofollow'; else: echo 'index, follow'; endif; ?>">
	<?php if($site->app_name()->isNotEmpty()): ?><meta name="apple-mobile-web-app-title" content="<?php echo $site->app_name()->smartypants(); ?>"><?php // Custom bookmarked page title on iOS ?><?php endif; ?>
	<meta name="theme-color" content="<?php echo ($site->theme_color()->isNotEmpty()) ? $site->theme_color() : '#141414' ; ?>"><?php // For theme-color in Chrome 39+ for Android, task bar collor in the switcher (http://j.mp/1xVyGVc) ?>

	<link rel="home" href="<?php echo $site->url(); ?>">
	<?php if(c::get('tinyurl.enabled') && !$page->isHomepage()): ?><link rel="shortlink" href="<?php echo $page->tinyurl(); ?>"><?php endif; ?> <?php // Shortlink, enable tinyurl in config.php ?>
	<link rel="sitemap" type="application/xml" title="<?php echo $site->title()->smartypants(); ?>: Sitemap" href="<?php echo (c::get('url') != '/') ? $site->url() . '/sitemap.xml' :  '/sitemap.xml'; ?>">
	<?php if($pages->has('blog')): ?><link rel="alternate" type="application/rss+xml" title="<?php echo $site->title()->smartypants(); ?>: <?php echo page('blog')->title()->smartypants(); ?> Feed" href="<?php echo (c::get('url') != '/') ? $site->url() . '/blog.rss' : '/blog.rss'; ?>"><?php endif; ?>
	<?php if($site->google_plus()->isNotEmpty()): ?><link rel="publisher" href="https://plus.google.com/<?php echo $site->google_plus(); ?>"><?php endif; ?>

	<link rel="apple-touch-icon" href="<?php echo url('/assets/images/apple-touch-icon-180x180.png'); ?>"><?php // Touch icons, iOS and Android, 180x180 pixels in size (http://j.mp/2fnrQmw, http://j.mp/2gpJVVF) ?>
	<link rel="icon" href="<?php echo url('/assets/images/favicon-192x192.png'); ?>"><?php // For Firefox, Chrome, Safari, IE 11+ and Opera, 192x192 pixels in size ?>
	<link rel="mask-icon" href="<?php echo url('/assets/images/pinned-icon.svg'); ?>" color="<?php echo ($site->theme_color()->isNotEmpty()) ? $site->theme_color() : '#141414' ; ?>"><?php // For Safari 9+ pinned tab (http://j.mp/2gpNiw9) ?>

	<?php // Next, previous and canonical rel links for all pages ?>
	<?php if(params()) : meta_prevnextcanonical_general($page); endif; ?>

	<?php // Next and previous rel links on specific pages (to use set $prev_next varibale in template) ?>
	<?php if($prev_next): meta_prevnextcanonical_single($page); endif; ?>

	<?php // Alternate language rel link(s) for matching languages in config and available text files (e.g. blogarticle.md, blogarticle.en.md) ?>
	<?php if(c::get('language.multi', false)): foreach($site->languages() as $language): if($site->languages()->count() > 1 && $site->language() != $language && isset($page->inventory()['content'][$language->code()])): ?><link rel="alternate" href="<?php echo $page->url($language->code()); ?>" hreflang="<?php echo $language->locale(); ?>"><?php endif; endforeach; endif; ?>

	<?php // Enhance stylesheets and scripts (https://github.com/filamentgroup/enhance) ?>
	<meta name="fullcss" content="<?php echo url('/assets/stylesheets/' . $env_suffix . '/' . $mobile_css . '.css'); ?>">
	<meta name="fulljs" content="<?php echo url('/assets/javascript/'. $env_suffix .'/' . $mobile_js . '.js'); ?>">
	<meta name="photoswipejs" content="<?php echo url('/assets/javascript/'. $env_suffix .'/' . $photoswipe_js . '.js'); ?>">
	<script><?php include_once(server::get('document_root') . '/assets/javascript/'. $env_suffix .'/' . $head_js . '.js'); ?></script>
	<?php if(isset($_COOKIE['fullcss']) && $_COOKIE['fullcss'] == 'true'): ?>
		<link rel="stylesheet" href="<?php echo url('/assets/stylesheets/' . $env_suffix . '/' . $mobile_css . '.css'); ?>">
	<?php else: ?>
		<style><?php if(c::get('environment') == 'local' || c::get('environment') == 'stage'): echo '/* ' . $criticalcss . ' css */' . "\n"; endif; include_once(server::get('document_root') . '/assets/stylesheets/critical/' . $criticalcss . '_mobile.css'); ?></style>
		<noscript><link rel="stylesheet" href="<?php echo url('/assets/stylesheets/' . $env_suffix . '/' . $mobile_css . '.css'); ?>"></noscript>
	<?php endif; ?>
	<link rel="stylesheet" href="<?php echo url('/assets/stylesheets/' . $env_suffix . '/' . $print_css . '.css'); ?>" media="print">

	<?php // Initialize JS variables for use later on ?>
	<script>var push_message = [];</script>

</head>
<body>

{'fraction_non_alphanumeric': 0.25862259562237455, 'fraction_numerical': 0.00563785098386027, 'mean_word_length': 4.367250074161969, 'pattern_counts': {'":': 0, '<': 213, '<?xml version=': 0, '>': 373, 'https://': 14, 'lorem ipsum': 0, 'www.': 2, 'xml': 8}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2105234', 'n_tokens_mistral': 6012, 'n_tokens_neox': 5816, 'n_words': 1326}