📄 opml.vm
字号:
<?xml version="1.0" encoding='utf-8'?>
$pageHelper.setContentType("text/xml")
<opml version="1.1">
<head>
<title>Roller-generated OPML</title>
</head>
#macro( spaces $depth )#foreach( $i in [0..$depth] ) #end#end
#**
* Recursive VelociMacro to render OPML for folder.
* @param folder Folder to be rendered as OPML or null to render from top.
*#
#macro( genOpml $folder $depth )
#set( $depth = $depth + 1 )
#if( !$folder )
<outline text="Roller-generated OPML">
#set( $topfolders = $pageModel.getTopLevelFolders() )
#foreach( $topfolder in $topfolders )
#genOpml( $topfolder $depth )
#end
</outline>
#else
#spaces($depth)<outline text="$utilities.textToXML($folder.name)">
#set( $bookmarks = $folder.getBookmarks() )
#foreach( $bookmark in $bookmarks )
#if( $bookmark.feedUrl && $bookmark.feedUrl.trim().length()>0 )
#set($feedUrl = $bookmark.feedUrl)
#end
#spaces($depth)<outline #if($bookmark.url)text="$utilities.textToXML($bookmark.name)"#end
#spaces($depth) #if($feedUrl)type="rss"#end
#spaces($depth) #if($bookmark.url)htmlUrl="$utilities.textToXML($bookmark.url)"#end
#spaces($depth) #if($feedUrl)xmlUrl="$utilities.textToXML($feedUrl)"#end
#spaces($depth) />
#end
#set( $subfolders = $folder.getFolders() )
#foreach( $subfolder in $subfolders )
#genOpml( $subfolder $depth )
#end
#spaces($depth)</outline>
#end
#set( $depth = $depth - 1 )
#end
<body>
#set( $folderPath = $pageModel.getRequestParameter("path") )
#if( $folderPath )
#set( $folder = $pageModel.getFolderByPath($folderPath) )
#end
#genOpml( $folder 0 )
</body>
</opml>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -