diff options
author | Soispha <soispha@vhack.eu> | 2023-04-28 16:12:08 +0200 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2023-05-09 19:32:52 +0200 |
commit | 558cde37c66b29807c8cb536f0a2236a8acad49e (patch) | |
tree | c35aa94d28db51a55e81c1ff17b0718267cb5137 /home-manager/config/firefox/functions/bookmarks/default.nix | |
parent | Fix(hm/conf/keepassxc): Rework config file (diff) | |
download | nixos-config-558cde37c66b29807c8cb536f0a2236a8acad49e.tar.gz nixos-config-558cde37c66b29807c8cb536f0a2236a8acad49e.zip |
Refactor(hm/conf/firefox): For a cleaner default.nix
Diffstat (limited to 'home-manager/config/firefox/functions/bookmarks/default.nix')
-rw-r--r-- | home-manager/config/firefox/functions/bookmarks/default.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/home-manager/config/firefox/functions/bookmarks/default.nix b/home-manager/config/firefox/functions/bookmarks/default.nix new file mode 100644 index 00000000..d1d89dd2 --- /dev/null +++ b/home-manager/config/firefox/functions/bookmarks/default.nix @@ -0,0 +1,49 @@ +{ + lib, + pkgs, +}: bookmarks: let + indent = level: + lib.concatStringsSep "" (map (lib.const " ") (lib.range 1 level)); + + bookmarkToHTML = indentLevel: bookmark: '' + ${indent indentLevel}<DT><A HREF="${ + lib.escapeXML bookmark.url + }" ADD_DATE="0" LAST_MODIFIED="0">${lib.escapeXML bookmark.name}</A>''; + + directoryToHTML = indentLevel: directory: '' + ${indent indentLevel}<DT>${ + if directory.toolbar + then ''<H3 PERSONAL_TOOLBAR_FOLDER="true">Bookmarks Toolbar'' + else "<H3>${lib.escapeXML directory.name}" + }</H3> + ${indent indentLevel}<DL><p> + ${allItemsToHTML (indentLevel + 1) directory.bookmarks} + ${indent indentLevel}</p></DL>''; + + itemToHTMLOrRecurse = indentLevel: item: + if item ? "url" + then bookmarkToHTML indentLevel item + else directoryToHTML indentLevel item; + + allItemsToHTML = indentLevel: bookmarks: + lib.concatStringsSep "\n" + (map (itemToHTMLOrRecurse indentLevel) bookmarks); + + bookmarkEntries = allItemsToHTML 1 bookmarks; +in + pkgs.writeText "firefox-bookmarks.html" '' + <!DOCTYPE NETSCAPE-Bookmark-file-1> + <!-- This is an automatically generated file. + It will be read and overwritten. + DO NOT EDIT! --> + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> + <TITLE>Bookmarks</TITLE> + <H1>Bookmarks Menu</H1> + + <DL><p> + <DT><H3 ADD_DATE="0" LAST_MODIFIED="0" PERSONAL_TOOLBAR_FOLDER="true">Bookmarks Toolbar</H3> + <DL><p> + ${bookmarkEntries} + </DL><p> + </p></DL> + '' |