Skip to content

Commit

Permalink
feat(seo): add meta keywords for supported languages
Browse files Browse the repository at this point in the history
- keyboard-details.php: use the langauge name(s) to produce keyboards.
- template.php: support 'keywords' to pass to head()
- Head.php: to support keywords as a parameter to head(), rendered as a meta tag. Escape ASCII quotes properly as entities.
  • Loading branch information
srl295 committed Nov 23, 2024
1 parent 501e187 commit 03b3351
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
6 changes: 5 additions & 1 deletion _includes/2020/templates/Head.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ static function render($fields = []) {
if(KeymanHosts::Instance()->Tier() == KeymanHosts::TIER_STAGING) {
echo ' <meta name="robots" content="none">';
}
if(isset($fields->keywords) && !empty($fields->keywords)) {
$keywords = htmlspecialchars($fields->keywords, ENT_QUOTES, "UTF-8");
echo "<meta name=\"keywords\" content=\"" . $keywords . "\" />\n";
}
?>
<title><?= $fields->title; ?></title>
<?php
Expand Down Expand Up @@ -81,4 +85,4 @@ static function render($fields = []) {

<?php
}
}
}
6 changes: 5 additions & 1 deletion _includes/includes/template.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ function template_finish($foot) {
}

function head($args=[]){
// Args are title='My Page Title', css='page.css' showMenu=true/false, showHeader=true/false, foot=true/false
// Args are title='My Page Title', css='page.css' showMenu=true/false, showHeader=true/false, foot=true/false, keywords='comma,separated,list'

$agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
// Get device
Expand Down Expand Up @@ -55,6 +55,9 @@ function head($args=[]){
if(isset($args['language'])) {
$language = $args['language'];
}
if(isset($args['keywords'])) {
$keywords = $args['keywords'];
}
if(isset($args['css'])){
$css = array();
foreach($args['css'] as $cssFile){
Expand Down Expand Up @@ -91,6 +94,7 @@ function head($args=[]){
if(isset($language)) $head['language'] = $language;
if(isset($css)) $head['css'] = $css;
if(isset($js)) $head['js'] = $js;
if(isset($keywords)) $head['keywords'] = $keywords;
\Keyman\Site\com\keyman\templates\Head::render($head);

if($menu == true) {
Expand Down
16 changes: 16 additions & 0 deletions _includes/includes/ui/keyboard-details.php
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,22 @@ protected static function WriteTitle() {
];
$embed_target = '';
}

// calculate keywords per language
$keywords = '';
if (isset(self::$keyboard->languages)) {
foreach (self::$keyboard->languages as $lang) {
if (!empty($keywords)) {
$keywords = $keywords . ', ';
}
$languageName = $lang->languageName;
$keywords = $keywords . $languageName . ' Keyboard';
}
}

// will be ignored if ''
$head_options['keywords'] = $keywords;

head($head_options);

if($embed == 'none') { ?>
Expand Down

0 comments on commit 03b3351

Please sign in to comment.