You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

88 lines
2.1 KiB

'use strict';
function postMenu(args, content) {
args = args.join(' ').split(',')
let text = args[0] || ''
let icon = args[1] || ''
if (icon.length > 0) {
return `<div class='dropmenu'>
<i class='${icon} fa-fw'></i>
<span>${text}</span>
<i class='fas fa-caret-down'></i>
<ul class='list-v'>
${content}
</ul>
</div>`
} else {
return `<div class='dropmenu'>
<span>${text}</span>
<i class='fas fa-caret-down'></i>
<ul class='list-v'>
${content}
</ul>
</div>`
}
}
function postSubmenu(args, content) {
args = args.join(' ').split(',')
let text = args[0] || ''
let icon = args[1] || ''
if (icon.length > 0) {
return `<li>
<a>
<i class='${icon} fa-fw'></i>
${text}
</a>
<ul class='list-v'>
${content}
</ul>
</li>`
} else {
return `<li>
<a>${text}</a>
<ul class='list-v'>
${content}
</ul>
</li>`
}
}
function postMenuItem(args) {
args = args.join(' ').split(',')
let text = args[0] || ''
let url = args[1] || ''
text = text.trim()
url = url.trim()
if (url.length > 0) {
url = "href='" + url + "'"
}
let icon = ''
if (args.length > 2) {
icon = args[2].trim()
}
if (url.length > 0) {
if (icon.length > 0) {
return `<li>
<a ${url} title='${text}'>
<i class='${icon} fa-fw'></i>
${text}
</a>
</li>`
} else {
return `<li>
<a ${url} title='${text}'>
${text}
</a>
</li>`
}
} else {
if (text == 'hr') {
return `<hr>`
}
}
}
hexo.extend.tag.register('menu', postMenu, {ends: true});
hexo.extend.tag.register('submenu', postSubmenu, {ends: true});
hexo.extend.tag.register('menuitem', postMenuItem);