powershell版本
$JsonPath = "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Bookmarks"
$Json = ConvertFrom-Json((Get-Content $JsonPath -Encoding UTF8) | out-string)
$bookmarks = $Json.roots.bookmark_bar.children
function printFolderItem($item, $depth) {
$space = ' ' * $depth
$folder = "### $($item.name)"
$content=$script:content
if ($mainbar.contains($item)) {
$content+= "`n$folder`n"
}
elseif ($item -eq $firstMainItem) {
$content+= "$folder`n"
}
else {
$content+= "$space* #$folder`n"
}
$script:content=$content
}
function printUrlItem($item, $depth) {
$space = ' ' * $depth
if ($mainbar.contains($item)) {
$link = "`n* [$($item.name)]`($($item.url)`)"
}
$link = "* [$($item.name)]`($($item.url)`)"
$script:content+= "$space$link`n"
}
function traverseBookmarks($bookmarks, $depth) {
foreach ($item in $bookmarks) {
switch ($item.type) {
'folder' {
if ($item.name -ne 'private') {
printFolderItem $item $depth
traverseBookmarks $item.children ($depth + 2)
}
break
}
'url' {
printUrlItem $item $depth
break
}
}
}
}
$mainbar = @()
$mainbar=$bookmarks[1..($bookmarks.length-1)]
$firstMainItem=$bookmarks[0]
$content=""
traverseBookmarks $bookmarks 0
$outPath=$PSScriptRoot + '\bookmarks.md'
$content | Out-File $outPath -Encoding utf8
php版本
roots->bookmark_bar->children;
function getSpace($depth)
{
$space='';
while ($depth-->0) {
$space=$space.' ';
}
return $space;
}
function printFolderItem($item, $depth)
{
$space=getSpace($depth);
$folder='### ' . $item->name;
global $mainbar;
global $firstMainItem;
global $content;
if (in_array($item, $mainbar)) {
$content.= "\n".$folder."\n";
} elseif ($item === $firstMainItem) {
$content.= $folder."\n";
} else {
$content.= $space . '* #'.$folder."\n";
}
}
function printUrlItem($item, $depth)
{
$space=getSpace($depth);
global $mainbar;
if (in_array($item, $mainbar)) {
$link="\n* [$item->name]($item->url)";
} else {
$link="* [$item->name]($item->url)";
}
global $content;
$content.= $space . $link ."\n";
}
function traverseBookmarks($bookmarks, $depth)
{
foreach ($bookmarks as $item) {
switch ($item->type) {
case 'folder':
if ($item->name !== 'private') {
printFolderItem($item, $depth);
traverseBookmarks($item->children, $depth+2);
}
break;
case 'url':
printUrlItem($item, $depth);
break;
}
}
}
$mainbar=[];
$bookmarksCopy=(array)$bookmarks;
foreach (array_slice($bookmarksCopy, 1) as $item) {
$mainbar[]=$item;
}
$firstMainItem=array_slice($bookmarksCopy, 0, 1)[0];
$content='';
traverseBookmarks($bookmarks, 0);
file_put_contents('bookmarks.md', $content);
本文链接: https://www.pstips.net/convert-chrome-bookmark-to-markdown.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
