帮助您改进网站的seo和ux的cli。

cushead的Python项目详细描述


Build StatusCodacy BadgecodecovPyPI version

尖头

a cli,帮助您改进网站的seo和ux。

与:元标记、favicons、manifest、robots、browserconfig、sitemap、opensearch一起工作

python版本:>;=3.5,<;4.0

package版本3.1.8

状态:生产/稳定

说明

这个脚本编辑一个html文件,为 改进网站的seo和^{str1}$ux。而且,它产生了很多 一些有用的文件,这些文件被转换成标签或其他东西。例如,图标 用于Apple设备和manifest.json文件。生成的信息和文件可以 通过配置文件设置。

脚本可以生成一个完整的默认配置文件,运行:

cushead -preset settings.txt

您可以根据需要编辑该文件,然后使用该设置运行脚本 使用:

cushead -file settings.txt

菜单

Install

Arguments

  1. -h

  2. -preset

  3. -file

Testing

Considerations

License

安装

python3 -m pip install cushead

参数

-h

cushead -h

usage: cushead -file FILEPATH

Options (one required):
  -preset FILENAME  Name of config file. Generate an example config file. That
                    file contains a variable named 'config' that can be
                    customized. It has some required values: 'html_file' (FILE
                    PATH), 'output' (FOLDER PATH) and 'static_url' (STRING).
                    Also, if 'icon_png' (IMAGE FILE PATH) is declared, this
                    key need to have a value related to a path of an existing
                    image.
  -file FILEPATH    Path to config file. Read a config file that contains
                    configurable values related to SEO and UX. After it, the
                    script edits an html file and generate complementary files
                    like icons, robots.txt, etc.

Examples:
1) Generate config file:
    cushead -preset settings.txt
2) Execute with using that config file:
    cushead -file settings.txt

-预设值

此命令生成python语法的完整配置文件。 示例:

cushead -preset settings.txt

(settings.txt)

"""Python syntaxcushead config fileGit: https://github.com/lucasvazq/cusheadDocumentation: https://github.com/lucasvazq/cushead/blob/master/README.mdCONFIG VARIABLES:  html_file (FILE PATH):    Required, can't be void, need to exist and referrer to a file  output (FOLDER PATH):    Required, need to exist and referrer to a folder  static_url (STRING):      Required  icon_png (FILE PATH):    If declared, need to exist and referrer to an image file    Recomended 310x310 png image"""# Don't delete or change the name of this variableconfig={# MAIN CONFIG'html_file':'./index.html','output':'./output/',# e.g. for manifest.json'static_url':'/static/',# GENERAL CONFIG'content-type':'text/html; charset=utf-8','X-UA-Compatible':'ie=edge','viewport':{'width':'device-width','initial-scale':'1'},'language':'en','territory':'US',# language territory'type':'website',# http://ogp.me/#types'color':'#FFFFFF','url':'microsoft.com',# Without "www." and protocol (e.g. "http://")'protocol':'https://','robots':'index, follow','browserconfig':'browserconfig.xml','manifest':'manifest.json','opensearch':'opensearch.xml','sitemap':'sitemap.xml',# BASIC CONFIG'title':'Microsoft','description':'Technology Solutions','subject':'Home Page','keywords':'Microsoft, Windows',# IMAGES'preview':'preview.png',# Big image preview'preview_type':'image/png',# image/jpeg, image/gif or image/png'icon':'favicon.ico',# *.ico'icon_png':'./favicon.png',# FILEPATH PNG IMAGE 310x310'mask-icon':'maskicon.svg',# svg file type# SOCIAL MEDIA'fb:app_id':'12345',# Facebook App ID'tw:site':'@Microsoft',# Twitter account'tw:creator:id':'123456',# Page editor ID# PWA'dir':'ltr','start_url':'/','orientation':'landscape','scope':'/','display':'browser','platform':'web','applications':[{'platform':'play','url':'https://play.google.com/store/apps/details?id=com.example.app','id':'com.example.app'},{'platform':'itunes','url':'https://itunes.apple.com/app/example-app/id123456',}],# AUTHOR'author':'Lucas Vazquez'}

HTML文件

需要一个*.html文件路径。 该文件需要包含一个字面上的<html>元素和一个$head$变量。 <html>元素用于添加lang属性。 $head$变量用于替换为自定义元素,如元标记。 示例结构:

(index.html)

<html><head>
    $head$
  </head></html>

输出

保存所有生成文件的文件夹。 它一定存在。

静态URL

静态文件的url路径。

图标

用于生成图标的PNG图像文件。建议尺寸为310x310。

-文件

此参数使用配置文件运行脚本。 使用使用-preset生成的默认配置文件,我们使用 -文件:

cushead -file settings.txt

输出:

<html lang="en">

HEAD:
<!-- Custom head elements -->
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<meta http-equiv='X-UA-Compatible' content='ie=edge' />
<meta name='viewport' content='width=device-width, initial-scale=1' />
<meta http-equiv='Content-Language' content='en' />
<meta name='theme-color' content='#FFFFFF' />
<meta name='msapplication-TileColor' content='#FFFFFF' />
<meta name='robots' content='index, follow' />
<title>Microsoft</title>
<meta name='application-name' content='Microsoft'>
<meta name='description' content='Technology Solutions' />
<meta name='subject' content='Home Page' />
<meta name='keywords' content='Microsoft, Windows' />
<link rel='icon' type="image/png" sizes='16x16' href='/static/favicon-16x16.png' />
<link rel='icon' type="image/png" sizes='24x24' href='/static/favicon-24x24.png' />
<link rel='icon' type="image/png" sizes='32x32' href='/static/favicon-32x32.png' />
<link rel='icon' type="image/png" sizes='48x48' href='/static/favicon-48x48.png' />
<link rel='icon' type="image/png" sizes='57x57' href='/static/favicon-57x57.png' />
<link rel='icon' type="image/png" sizes='60x60' href='/static/favicon-60x60.png' />
<link rel='icon' type="image/png" sizes='64x64' href='/static/favicon-64x64.png' />
<link rel='icon' type="image/png" sizes='70x70' href='/static/favicon-70x70.png' />
<link rel='icon' type="image/png" sizes='72x72' href='/static/favicon-72x72.png' />
<link rel='icon' type="image/png" sizes='76x76' href='/static/favicon-76x76.png' />
<link rel='icon' type="image/png" sizes='96x96' href='/static/favicon-96x96.png' />
<link rel='icon' type="image/png" sizes='114x114' href='/static/favicon-114x114.png' />
<link rel='icon' type="image/png" sizes='120x120' href='/static/favicon-120x120.png' />
<link rel='icon' type="image/png" sizes='128x128' href='/static/favicon-128x128.png' />
<link rel='icon' type="image/png" sizes='144x144' href='/static/favicon-144x144.png' />
<link rel='icon' type="image/png" sizes='150x150' href='/static/favicon-150x150.png' />
<link rel='icon' type="image/png" sizes='152x152' href='/static/favicon-152x152.png' />
<link rel='icon' type="image/png" sizes='167x167' href='/static/favicon-167x167.png' />
<link rel='icon' type="image/png" sizes='180x180' href='/static/favicon-180x180.png' />
<link rel='icon' type="image/png" sizes='192x192' href='/static/favicon-192x192.png' />
<link rel='icon' type="image/png" sizes='195x195' href='/static/favicon-195x195.png' />
<link rel='icon' type="image/png" sizes='196x196' href='/static/favicon-196x196.png' />
<link rel='icon' type="image/png" sizes='228x228' href='/static/favicon-228x228.png' />
<link rel='icon' type="image/png" sizes='310x310' href='/static/favicon-310x310.png' />
<meta name='msapplication-TileImage' content='/static/ms-icon-144x144.png' />
<link rel='apple-touch-icon' href='/static/apple-touch-icon-57x57.png' />
<link rel='apple-touch-icon' sizes='57x57' href='/static/apple-touch-icon-57x57.png' />
<link rel='apple-touch-icon' sizes='60x60' href='/static/apple-touch-icon-60x60.png' />
<link rel='apple-touch-icon' sizes='72x72' href='/static/apple-touch-icon-72x72.png' />
<link rel='apple-touch-icon' sizes='76x76' href='/static/apple-touch-icon-76x76.png' />
<link rel='apple-touch-icon' sizes='114x114' href='/static/apple-touch-icon-114x114.png' />
<link rel='apple-touch-icon' sizes='120x120' href='/static/apple-touch-icon-120x120.png' />
<link rel='apple-touch-icon' sizes='144x144' href='/static/apple-touch-icon-144x144.png' />
<link rel='apple-touch-icon' sizes='152x152' href='/static/apple-touch-icon-152x152.png' />
<link rel='apple-touch-icon' sizes='180x180' href='/static/apple-touch-icon-180x180.png' />
<link rel='fluid-icon' href='/static/fluidicon-512x512.png' title='Microsoft' />
<link rel='shortcut icon' href='/static/favicon.ico' type='image/x-icon' />
<link rel='mask-icon' href='maskicon.svg' color='#FFFFFF' />
<meta name='msapplication-config' content='/static/browserconfig.xml' />
<link rel='manifest' href='/static/manifest.json' />
<link rel='search' type='application/opensearchdescription+xml' title='Microsoft' href='/static/opensearch.xml' />
<meta porperty='fb:app_id' content='12345' />
<meta property='og:locale' content='en_US' />
<meta property='og:type' content='website' />
<meta property='og:url' content='https://microsoft.com' />
<meta property='og:site_name' content='Microsoft' />
<meta property='og:title' content='Microsoft' />
<meta property='og:description' content='Technology Solutions' />
<meta property='og:image' content='/static/preview.png' />
<meta property='og:image:secure_url' content='/static/preview.png' />
<meta name='twitter:image' content='/static/preview.png' />
<meta property='og:image:type' content='image/png' />
<meta property='og:image:alt' content='Microsoft - Technology Solutions' />
<meta name='twitter:image:alt' content='Microsoft - Technology Solutions' />
<meta name='twitter:card' content='summary' />
<meta name='twitter:site' content='@Microsoft' />
<meta name='twitter:title' content='Microsoft' />
<meta name='twitter:description' content='Technology Solutions' />
<meta property='twitter:creator:id' content='123456' />
<meta name='author' content='Lucas Vazquez' />

NEW FILES:
./output/favicon-16x16.png
./output/favicon-24x24.png
./output/favicon-32x32.png
./output/favicon-48x48.png
./output/favicon-57x57.png
./output/favicon-60x60.png
./output/favicon-64x64.png
./output/favicon-70x70.png
./output/favicon-72x72.png
./output/favicon-76x76.png
./output/favicon-96x96.png
./output/favicon-114x114.png
./output/favicon-120x120.png
./output/favicon-128x128.png
./output/favicon-144x144.png
./output/favicon-150x150.png
./output/favicon-152x152.png
./output/favicon-167x167.png
./output/favicon-180x180.png
./output/favicon-192x192.png
./output/favicon-195x195.png
./output/favicon-196x196.png
./output/favicon-228x228.png
./output/favicon-310x310.png
./output/ms-icon-144x144.png
./output/apple-touch-icon-57x57.png
./output/apple-touch-icon-57x57.png
./output/apple-touch-icon-60x60.png
./output/apple-touch-icon-72x72.png
./output/apple-touch-icon-76x76.png
./output/apple-touch-icon-114x114.png
./output/apple-touch-icon-120x120.png
./output/apple-touch-icon-144x144.png
./output/apple-touch-icon-152x152.png
./output/apple-touch-icon-180x180.png
./output/fluidicon-512x512.png
./output/ms-icon-30x30.png
./output/ms-icon-44x44.png
./output/ms-icon-70x70.png
./output/ms-icon-150x150.png
./output/ms-icon-310x310.png
./output/ms-icon-310x150.png
./output/android-icon-36x36.png
./output/android-icon-48x48.png
./output/android-icon-72x72.png
./output/android-icon-96x96.png
./output/android-icon-144x144.png
./output/android-icon-192x192.png
./output/opensearch-16x16.png
./output/browserconfig.xml
./output/manifest.json
./output/opensearch.xml
./output/robots.txt
./output/sitemap.xml

HTML FILE: ./index.html
(full path): /home/user/Projects/Example/./index.html
OUTPUT FILES: ./output/
(full path): /home/user/Projects/Example/./output/

编辑的HTML文件

假设我们提供前面声明的html文件(index.html),那么 将是:

(index.html)

<htmllang="en"><head><!-- Custom head elements --><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><metahttp-equiv="X-UA-Compatible"content="ie=edge"/><metaname="viewport"content="width=device-width, initial-scale=1"/><metahttp-equiv="Content-Language"content="en"/><metaname="theme-color"content="#FFFFFF"/><metaname="msapplication-TileColor"content="#FFFFFF"/><metaname="robots"content="index, follow"/><title>Microsoft</title><metaname="application-name"content="Microsoft"><metaname="description"content="Technology Solutions"/><metaname="subject"content="Home Page"/><metaname="keywords"content="Microsoft, Windows"/><linkrel="icon"type="image/png"sizes="16x16"href="/static/favicon-16x16.png"/><linkrel="icon"type="image/png"sizes="24x24"href="/static/favicon-24x24.png"/><linkrel="icon"type="image/png"sizes="32x32"href="/static/favicon-32x32.png"/><linkrel="icon"type="image/png"sizes="48x48"href="/static/favicon-48x48.png"/><linkrel="icon"type="image/png"sizes="57x57"href="/static/favicon-57x57.png"/><linkrel="icon"type="image/png"sizes="60x60"href="/static/favicon-60x60.png"/><linkrel="icon"type="image/png"sizes="64x64"href="/static/favicon-64x64.png"/><linkrel="icon"type="image/png"sizes="70x70"href="/static/favicon-70x70.png"/><linkrel="icon"type="image/png"sizes="72x72"href="/static/favicon-72x72.png"/><linkrel="icon"type="image/png"sizes="76x76"href="/static/favicon-76x76.png"/><linkrel="icon"type="image/png"sizes="96x96"href="/static/favicon-96x96.png"/><linkrel="icon"type="image/png"sizes="114x114"href="/static/favicon-114x114.png"/><linkrel="icon"type="image/png"sizes="120x120"href="/static/favicon-120x120.png"/><linkrel="icon"type="image/png"sizes="128x128"href="/static/favicon-128x128.png"/><linkrel="icon"type="image/png"sizes="144x144"href="/static/favicon-144x144.png"/><linkrel="icon"type="image/png"sizes="150x150"href="/static/favicon-150x150.png"/><linkrel="icon"type="image/png"sizes="152x152"href="/static/favicon-152x152.png"/><linkrel="icon"type="image/png"sizes="167x167"href="/static/favicon-167x167.png"/><linkrel="icon"type="image/png"sizes="180x180"href="/static/favicon-180x180.png"/><linkrel="icon"type="image/png"sizes="192x192"href="/static/favicon-192x192.png"/><linkrel="icon"type="image/png"sizes="195x195"href="/static/favicon-195x195.png"/><linkrel="icon"type="image/png"sizes="196x196"href="/static/favicon-196x196.png"/><linkrel="icon"type="image/png"sizes="228x228"href="/static/favicon-228x228.png"/><linkrel="icon"type="image/png"sizes="310x310"href="/static/favicon-310x310.png"/><metaname="msapplication-TileImage"content="/static/ms-icon-144x144.png"/><linkrel="apple-touch-icon"href="/static/apple-touch-icon-57x57.png"/><linkrel="apple-touch-icon"sizes="57x57"href="/static/apple-touch-icon-57x57.png"/><linkrel="apple-touch-icon"sizes="60x60"href="/static/apple-touch-icon-60x60.png"/><linkrel="apple-touch-icon"sizes="72x72"href="/static/apple-touch-icon-72x72.png"/><linkrel="apple-touch-icon"sizes="76x76"href="/static/apple-touch-icon-76x76.png"/><linkrel="apple-touch-icon"sizes="114x114"href="/static/apple-touch-icon-114x114.png"/><linkrel="apple-touch-icon"sizes="120x120"href="/static/apple-touch-icon-120x120.png"/><linkrel="apple-touch-icon"sizes="144x144"href="/static/apple-touch-icon-144x144.png"/><linkrel="apple-touch-icon"sizes="152x152"href="/static/apple-touch-icon-152x152.png"/><linkrel="apple-touch-icon"sizes="180x180"href="/static/apple-touch-icon-180x180.png"/><linkrel="fluid-icon"href="/static/fluidicon-512x512.png"title="Microsoft"/><linkrel="shortcut icon"href="/static/favicon.ico"type="image/x-icon"/><linkrel="mask-icon"href="maskicon.svg"color="#FFFFFF"/><metaname="msapplication-config"content="/static/browserconfig.xml"/><linkrel="manifest"href="/static/manifest.json"/><linkrel="search"type="application/opensearchdescription+xml"title="Microsoft"href="/static/opensearch.xml"/><metaporperty="fb:app_id"content="12345"/><metaproperty="og:locale"content="en_US"/><metaproperty="og:type"content="website"/><metaproperty="og:url"content="https://microsoft.com"/><metaproperty="og:site_name"content="Microsoft"/><metaproperty="og:title"content="Microsoft"/><metaproperty="og:description"content="Technology Solutions"/><metaproperty="og:image"content="/static/preview.png"/><metaproperty="og:image:secure_url"content="/static/preview.png"/><metaname="twitter:image"content="/static/preview.png"/><metaproperty="og:image:type"content="image/png"/><metaproperty="og:image:alt"content="Microsoft - Technology Solutions"/><metaname="twitter:image:alt"content="Microsoft - Technology Solutions"/><metaname="twitter:card"content="summary"/><metaname="twitter:site"content="@Microsoft"/><metaname="twitter:title"content="Microsoft"/><metaname="twitter:description"content="Technology Solutions"/><metaproperty="twitter:creator:id"content="123456"/><metaname="author"content="Lucas Vazquez"/></head></html>

新文件

48个不同大小的新图标,来自“icon_png”配置值。 新文件:browserconfig.xml、manifest.json、opensearch.xml、robots.txt和 sitemap.xml

(browserconfig.xml)美容版

<?xml version="1.0" encoding="utf-8"?><browserconfig><msapplication><tile><square30x30logosrc="/static/ms-icon-30x30.png"/><square44x44logosrc="/static/ms-icon-44x44.png"/><square70x70logosrc="/static/ms-icon-70x70.png"/><square150x150logosrc="/static/ms-icon-150x150.png"/><square310x310logosrc="/static/ms-icon-310x310.png"/><wide310x150logosrc="/static/ms-icon-310x150.png"/><TileColor>#FFFFFF</TileColor></tile></msapplication></browserconfig>

(manifest.json)beauty版本

{"name":"Microsoft","short_name":"Microsoft","description":"Technology Solutions","dir":"ltr","start_url":"/","orientation":"landscape","background_color":"#FFFFFF","theme_color":"#FFFFFF","default_locale":"en","scope":"/","display":"browser","platform":"web","related_applications":[{"platform":"play","url":"https://play.google.com/store/apps/details?id=com.example.app","id":"com.example.app"},{"platform":"itunes","url":"https://itunes.apple.com/app/example-app/id123456"}],"icons":[{"src":"/static/android-icon-36x36","sizes":"36x36","type":"image/png","density":"0.75"},{"src":"/static/android-icon-48x48","sizes":"48x48","type":"image/png","density":"1.0"},{"src":"/static/android-icon-72x72","sizes":"72x72","type":"image/png","density":"1.5"},{"src":"/static/android-icon-96x96","sizes":"96x96","type":"image/png","density":"2.0"},{"src":"/static/android-icon-144x144","sizes":"144x144","type":"image/png","density":"3.0"},{"src":"/static/android-icon-192x192","sizes":"192x192","type":"image/png","density":"4.0"}]}

(opensearch.xml)美容版

<?xml version="1.0" encoding="utf-8"?><OpenSearchDescriptionxmlns:moz="http://www.mozilla.org/2006/browser/search/"xmlns="http://a9.com/-/spec/opensearch/1.1/"><ShortName>Microsoft</ShortName><Description>Search Microsoft</Description><InputEncoding>UTF-8</InputEncoding><Urlmethod="get"type="text/html"template="http://www.google.com/search?q={searchTerms}+site%3Amicrosoft.com"/><Imageheight="16"width="16"type="image/png">/static/opensearch-16x16.png</Image></OpenSearchDescription>

(robots.txt)

User-agent: *
Allow: /

Sitemap: https://microsoft.com/sitemap.xml

(sitemap.xml)美容版

<?xml version="1.0" encoding="uft-8"?><urlsetxmlns="http://www.sitemaps.org/schemas/sitemap/0.9"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"><url><loc>https://microsoft.com/</loc></url></urlset>

测试

文件

manifest.json

robots.txt

sitemap.xml

标题

Favicons

Meta-tags

Facebook Debugger

Twitter Card validator

注意事项

下面是一个概念列表,其中包含改进seo的良好实践ux

  1. 结构化数据:rdfa、json-d、microdata、goodrelations、vcard、hcard
  2. rel profile属性,用于引用作者或网站所有者
  3. 可屏蔽图标
  4. 加速移动网页
  5. 渐进式Web应用程序
  6. PWA清单中的屏幕截图
  7. 将pwa添加到应用程序商店(如google的play store)
  8. 用短变量名缩小并清除javascript和css
  9. 响应式设计
  10. 手机网站的移动电话和WhatsApp短信
  11. 谷歌我的业务集成
  12. gzip和bzip2压缩
  13. 服务器端渲染
  14. http客户端缓存
  15. 内容交付网络

许可证

cushead©2019卢卡斯·巴斯克斯。根据MIT许可证发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java linkedlist字符串排序算法   枚举类上出现maven错误的java ProGuard   java如何将ActionBar徽标设置为文本(TextView)?   swing当剪贴板内容在java之外发生更改时,是否可以得到通知   javascript从网络摄像头拍摄照片并保存到服务器上   java如何使用流将列表中的选定元素复制到另一个列表   使用eBay API获取产品详细信息的java   java ANTLR树中的子级数未知   java Selenium:访问'file:///C://Users//DELL//Desktop//Project%20UI//FastHome.html“剧本被拒绝了   如何在Java web项目中抛出一个无法捕获并结束执行的异常?   java有人能解释强引用、软引用、弱引用和虚引用之间的区别以及它们的用法吗?   java根据父级Android Studio的维度设置宽度和高度   包含对象数组列表的java序列化对象   返回奇怪字符的java libimobiledevice   java数据库无法以html格式存储   java Google play服务查找我的位置很慢   GCC原生Java编译器作为典型开源Java项目的平台有多实用?   java如何将从Web服务接收的二进制64格式的图像转换为实际图像?   java访问Tomcat 8上的属性文件