修改meta、link优化seo

This commit is contained in:
何童崇 2023-01-13 17:10:03 +08:00
parent 93ddee8c9e
commit ae20016505
7 changed files with 78 additions and 6 deletions

View File

@ -4,15 +4,30 @@
<head>
<meta charset="utf-8">
<meta name="Keywords" Content="gitLink,GitLink,gitlink,trustie,trustieforge,forge,开源,确实开源,代码托管,Git,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务,确实让创建更美好,协同开发平台">
<meta name=”Description” Content=”GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境>
<meta name="description" Content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境">
<meta property="og:title" content="GitLink | 确实开源" />
<meta property="og:type" content="Object" />
<meta property="og:url" content="https://gitlink.org.cn/" />
<meta property="og:image" content="https://www.gitlink.org.cn/images/logo.png" />
<meta property="og:image:alt" content="GitLink | 确实开源" />
<meta property="og:site_name" content="GitLink" />
<meta property="og:description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境" />
<meta name="hostname" content="gitlink.org.cn">
<meta name="keyboard-shortcuts-preference" content="all">
<meta name="expected-hostname" content="gitlink.org.cn">
<meta name="go-import" content="gitlink.org.cn git https://gitlink.org.cn">
<meta name="octolytics-dimension-user_login" content="GitLink"></meta>
<meta name="theme-color" content="#000000">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta name="twitter:image:src" content="https://www.gitlink.org.cn/images/logo.png">
<meta name="twitter:site" content="@gitlink">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="GitLink | 确实开源">
<meta name="twitter:description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境">
<meta content="always" name="referrer">
<link rel="canonical" href="https://gitlink.org.cn" data-turbo-transient="">
<link rel="fluid-icon" href="https://www.gitlink.org.cn/images/logo.png" title="GitLink">
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link href="https://gw.alipayobjects.com/os/lib/alipay/alex/2.0.19/bundle/alex.all.global.min.css" rel="stylesheet"/>
<link rel="stylesheet" type="text/css" href="%PUBLIC_URL%css/iconfont.css">
@ -46,6 +61,10 @@
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
function aaa(){
console.log(111);
}
</script>
</body>

View File

@ -297,4 +297,47 @@ export function returnbar(str){
}
}
return s;
}
// 手动添加/修改mate标签
export function addMeta(name, content){
if(document.querySelector(`meta[name='${name}']`)){
document.querySelector(`meta[name='${name}']`).content=content;
}else{
const meta = document.createElement('meta');
meta.content = content;
meta.name = name;
document.getElementsByTagName('head')[0].appendChild(meta);
}
};
/**
* 设置meta中的og:titleog:descriptionog:urltwitter:title等优化seo
* keyWords 关键词
* title 网页标题
* description 描述
* url 网页地址
* owner 项目拥有者或者个人主页用户login
* projectId 项目唯一标识
*/
export function setSeoMeta(keyWords, title, description, url, owner, projectId) {
console.log('keyWords:'+ keyWords);
document.querySelector(`meta[property='og:title']`).content = title;
document.querySelector(`meta[property='og:url']`).content = location.origin + url;
document.querySelector(`meta[property='og:description']`).content = description + ' - ' + title;
document.querySelector(`meta[property='og:image:alt']`).content = description + ' - ' + title;
document.querySelector('meta[name="Keywords"]').content=keyWords + 'gitLink,GitLink,gitlink,trustie,trustieforge,forge,开源,确实开源,代码托管,Git,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务,确实让创建更美好,协同开发平台';
document.querySelector(`meta[name='description']`).content = description;
document.querySelector(`meta[name='go-import']`).content = location.host + url + ' git ' + location.origin + url;
document.querySelector(`meta[name='octolytics-dimension-user_login']`).content = owner;
if (projectId) {
document.querySelector(`meta[name='octolytics-dimension-repository_nwo']`).content = owner + '/' + projectId;
document.querySelector(`meta[name='octolytics-dimension-repository_network_root_nwo']`).content = owner + '/' + projectId;
}
document.querySelector(`meta[name='twitter:title']`).content = title;
document.querySelector(`meta[name='twitter:description']`).content = description + ' - ' + title;
document.querySelector(`link[rel='canonical']`).href = location.origin + url;
}

View File

@ -7,7 +7,7 @@ export {
getImageUrl as getImageUrl,getImageUrlAbsolute as getImageUrlAbsolute,getImage as getImage, getmyUrl as getmyUrl, getRandomNumber as getRandomNumber, getUrl as getUrl, publicSearchs as publicSearchs, getRandomcode as getRandomcode, getUrlmys as getUrlmys, getUrl2 as getUrl2, setImagesUrl as setImagesUrl
, getUploadActionUrl as getUploadActionUrl, getUploadActionUrltwo as getUploadActionUrltwo, getUploadActionUrlthree as getUploadActionUrlthree, getUploadActionUrlOfAuth as getUploadActionUrlOfAuth
, getTaskUrlById as getTaskUrlById, TEST_HOST, htmlEncode as htmlEncode, getupload_git_file as getupload_git_file, getcdnImageUrl as getcdnImageUrl,
turnbar,returnbar
turnbar,returnbar,setSeoMeta as setSeoMeta
} from './UrlTool';
export { setmiyah as setmiyah } from './Component';

View File

@ -4,6 +4,7 @@ import { Link, Route, Switch } from 'react-router-dom';
import { Content, AlignTop } from '../Component/layout';
import DetailBanner from './sub/DetailBanner';
import cookie from 'react-cookies';
import { setSeoMeta } from 'educoder';
import { Base64 } from 'js-base64';
import '../css/index.scss'
import './list.scss';
@ -406,6 +407,10 @@ class Detail extends Component {
forked_count: result.data.forked_count,
defaultBranch: result.data.default_branch
});
// seo优化设置
let keyWords=`${owner},${projectsId},${result.data.author.name},`;
let title= `${owner}/${projectsId}${result.data.description?''+result.data.description:''}`;
setSeoMeta(keyWords,title,result.data.description,`/${owner}/${projectsId}`,owner,projectsId);
}
}
}).catch((error) => { })

View File

@ -7,7 +7,6 @@ import Item from './ListItem';
import Right from './RightBox';
import NoData from '../Nodata';
import CheckProfile from '../Component/ProfileModal/Profile';
import { Menu , Pagination , Dropdown , Spin } from 'antd';
import axios from 'axios';
@ -27,7 +26,7 @@ function List(props){
if(organizeDetail){
//
const {nickname} = organizeDetail;
document.title = `${nickname}`
document.title = `${nickname}(${OIdentifier}) ${organizeDetail.description}`
}
},[organizeDetail])

View File

@ -2,7 +2,7 @@ import React , { useEffect , useState } from 'react';
import { Route, Switch , Link } from "react-router-dom";
import Loadable from "react-loadable";
import Loading from "../../../Loading";
import {AlignCenter} from '../../Component/layout';
import { setSeoMeta } from "educoder";
import Cards from '../../Component/Cards';
import axios from 'axios';
import '../Index.scss';
@ -62,6 +62,9 @@ function Detail(props){
axios.get(url).then(result=>{
if(result && result.data){
setDetail(result.data);
let keyWords=`${result.data.nickname},${id},`;
let title= result.data.nickname+'('+ id +') ' +result.data.description;
setSeoMeta(keyWords,title,title,`/${id}`,id);
}
}).catch(error=>{})
}

View File

@ -4,7 +4,7 @@ import { Spin , Menu } from "antd";
import FocusButton from "../UsersList/focus_button";
import axios from "axios";
import { getImageUrl } from "educoder";
import { getImageUrl,setSeoMeta } from "educoder";
import { Route, Switch } from "react-router-dom";
import Avatar from './Avatar/Index';
@ -154,6 +154,9 @@ class Infos extends Component {
const { pathname } = this.props.location;
this.renderPath(pathname,result.data);
document.title = result.data.username ? result.data.username : username;
let keyWords=`${result.data.username},${username},`;
let title= result.data.username+'('+ username +')';
setSeoMeta(keyWords,title,title,`/${username}`,username);
})
.catch((error) => {
this.setState({