Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
hexo-related-popular-posts
Advanced tools
A hexo plugin that generates a list of links to related posts and popular posts.
A hexo plugin that generates a list of links to related posts or popular posts.
A hexo plugin that generates a list of links to related posts based on tags , and plugin that generates a list of links to popular posts base on page view of Google Analytics. Popular posts is need Google Analytics API. Also , this plugin can generates a list of links to related posts based on contents.
$ npm install hexo-related-popular-posts --save
First, add the following helper tag in template file for article. Please edit themes/(your-theme)/layout/_partial/your_template.ejs
.
<%-
popular_posts()
%>
Starts a local server. By default, this is at http://localhost:4000/
.
$ hexo server
A related article is displayed . The above is an easy introduction usage.
If you want to make more detailed settings , please see below for the details.
Also , this plugin can set the following options. Please edit your config file _config.yml
.
# More detailed settings
popularPosts:
# (optional) Popular posts options
googleAnalyticsAPI:
clientId: ******.apps.googleusercontent.com
serviceEmail: *****@developer.gserviceaccount.com
key: /hexo-project-root/path/to/google-services.pem
viewId: 12345678
dateRange: 30
expiresDate: 10
# cache: # (Deprecated) This options is Deprecated > v0.1.3
# path: hexo-related-popular-posts-ga-cached.json # (Deprecated) This options is Deprecated > v0.1.3
# expiresDate: 10 # (Deprecated) This options is Deprecated > v0.1.3
# (optional) Advanced Related posts options
morphologicalAnalysis:
negativeKeywordsList: pluginSettings/hexo-rpp-negativewords.txt
limit: 300
# (optional) Related post's weight options
weight:
tagRelevancy: 1.0
contentsRelevancy: 1.0
# (optional) Cache options (Improve generation speed.)
cache:
path: cache/hexo-popular-related-posts-ga-cached.json
# (optional) Log options
log: true
popular_posts()
helper can set the following options.
option | description | default |
---|---|---|
maxCount | Maximum count of a list | 5 |
ulClass | Class name of element | 'popular-posts' |
PPMixingRate | Mixing ratio of popular posts and related posts | 0.0 (=Related posts only) |
isDate | visible the date | false |
isImage | visible the image | false |
isExcerpt | visible the excerpt | false |
<%-
popular_posts_json({ maxCount: 5 , ulClass: 'popular-posts' , PPMixingRate: 0.0 , isImage: true})
%>
<%-
popular_posts_json({ maxCount: 10 , ulClass: 'popular-posts' , PPMixingRate: 1.0 })
%>
If you want customize list's html , please use Customize HTML
Popular posts base on page view of Google Analytics. Popular posts is need Google Analytics API. Please edit your config file _config.yml
and set the following options.
Please see https://www.npmjs.com/package/ga-analytics
popularPosts:
googleAnalyticsAPI:
clientId: ******.apps.googleusercontent.com
serviceEmail: *****@developer.gserviceaccount.com
key: /hexo-project-root/path/to/google-services.pem
viewId: 12345678
dateRange: 30 # (Optional) The period you want to get by Google Analytics page view. Default = 30
expiresDate: 10 # (optional) Expiration date of cache file. Default = 10
# cache: # (Deprecated) This options is Deprecated > v0.1.3
# path: hexo-related-popular-posts-ga-cached.json # (Deprecated) This options is Deprecated > v0.1.3
# expiresDate: 10 # (Deprecated) This options is Deprecated > v0.1.3
If you want to use the environment variable. Please set the following. If you use Windows , please see youtube about what how to set environment variable.
$ export GOOGLEAPI_CLIENTID="******.apps.googleusercontent.com"
$ export GOOGLEAPI_EMAIL="*****@developer.gserviceaccount.com"
$ export GOOGLEAPI_KEY="/path/to/google-services.pem"
$ export GOOGLEAPI_ANALYTICS_TABLE="ga:12345678"
popularPosts:
googleAnalyticsAPI:
# clientId: ******.apps.googleusercontent.com
# serviceEmail: *****@developer.gserviceaccount.com
# key: /hexo-project-root/path/to/google-services.pem
# viewId: 12345678
dateRange: 60
expiresDate: 10
This plugin that can generates a list of links to related posts based on content's keywords and internal link. Support language is as follow. Please cooperate with support of other languages.
If you want to generates a list of links to related posts based on contents , please set the morphologicalAnalysis
option.
popularPosts:
morphologicalAnalysis:
More detailed options can be set as follows.
popularPosts:
morphologicalAnalysis:
negativeKeywordsList: hexo-rpp-negativewords.txt # (optional) If you want to exclude the keywords for analytics , set the exclude file.
limit: 300 # (optional) If you want to limit the number of keywords for analytics , set the number.
weight: # (optional)
tagRelevancy: 1.0 # (optional) Weight of tag relevancy. Default = 1.0
contentsRelevancy: 1.0 # (optional) Weight of contents relevancy. Default = 1.0
For example, hexo-rpp-negativewords.txt
can describe a regular expression as follows. Please enter the keywors of each data separated by newlines.
^.$
^[0-9]+$
^String to exclude from related keywords$
^関連キーワードから除外しておきたい文字列を正規表現で指定する$
^要从相关关键字排除的字符串$
...
This option improves the generation speed.
popularPosts:
cache:
path: hexo-popular-related-posts-cached.json
When this option is enabled, logs are displayed.
popularPosts:
log: true # (Optional) When this option is enabled, logs are displayed. Default = true
If you want customize list's html , please use popular_posts_json()
helper and htmlGenerator()
register .
First , please edit themes/(your-theme)/layout/_partial/your_article_template.ejs
.
<%-
htmlGenerator(
popular_posts_json({ maxCount: 5 , ulClass: 'popular-posts' , PPMixingRate: 0.0 , isDate: true , isImage: true , isExcerpt: true})
)
%>
Second , please edit themes/(your-theme)/scripts/your_scripts.js
.
// Examples of helper
hexo.extend.helper.register('htmlGenerator', function(args){
if(!args || !args.json || args.json.length == 0)return "";
var returnHTML = "";
function generateHTML(list){
var ret = "";
ret += "<li class=\"" + args.class + "-item\">";
if(list.date && list.date != ""){
ret += '<div class="'+args.class+'-date">' + list.date + "</div>";
}
if(list.img && list.img != ""){
ret += '<div class="'+args.class+'-img">' + '<img src="'+list.img+'" />' + "</div>";
}
ret += '<div class="'+args.class+'-title"><h3><a href="' + list.path + '" title="'+ list.title +'" rel="bookmark">'+ list.title + "</a></h3></div>";
if(list.excerpt && list.excerpt != ""){
ret += '<div class="'+args.class+'-excerpt"><p>' + list.excerpt + "</p></div>";
}
ret += "</li>";
return ret;
}
for(var i=0; i<args.json.length; i++){
returnHTML += generateHTML(args.json[i]);
}
if(returnHTML != "")returnHTML = "<ul class=\"" + args.class + "\">" + returnHTML + "</ul>";
return returnHTML;
});
MIT
FAQs
A hexo plugin that generates a list of links to related posts and popular posts. Also , this plugin can get Visitor Counts (PageView) on posts.
The npm package hexo-related-popular-posts receives a total of 610 weekly downloads. As such, hexo-related-popular-posts popularity was classified as not popular.
We found that hexo-related-popular-posts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.