aboutsummaryrefslogtreecommitdiffstats
path: root/modules/home.legacy/conf/firefox/config/bookmarks
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-18 17:07:46 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-18 17:07:46 +0200
commitc52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c (patch)
treee8b947710b467b32740598ff574982097836f66c /modules/home.legacy/conf/firefox/config/bookmarks
parentchore(pkgs/yt): 1.2.1 -> 1.3.0 (diff)
downloadnixos-config-c52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c.zip
refactor(modules): Move all system modules to `by-name`
From now on all modules should be added to the new `by-name` directory. This should help remove the (superficial and utterly useless) distinction between `home-manager` and `NixOS` modules.
Diffstat (limited to 'modules/home.legacy/conf/firefox/config/bookmarks')
-rw-r--r--modules/home.legacy/conf/firefox/config/bookmarks/default.nix31
-rw-r--r--modules/home.legacy/conf/firefox/config/bookmarks/lib.nix49
2 files changed, 80 insertions, 0 deletions
diff --git a/modules/home.legacy/conf/firefox/config/bookmarks/default.nix b/modules/home.legacy/conf/firefox/config/bookmarks/default.nix
new file mode 100644
index 00000000..c612bf4d
--- /dev/null
+++ b/modules/home.legacy/conf/firefox/config/bookmarks/default.nix
@@ -0,0 +1,31 @@
+{
+ lib,
+ pkgs,
+ ...
+}: let
+ bookmarks = [
+ {
+ name = "Feed - Piped";
+ url = "https://piped.video/feed";
+ }
+
+ {
+ name = "DeepL Translate";
+ url = "https://www.deepl.com/translator";
+ }
+
+ {
+ name = "Nix lib";
+ url = "https://teu5us.github.io/nix-lib.html";
+ }
+
+ {
+ name = "Nixpkgs manual";
+ url = "https://ryantm.github.io/nixpkgs/";
+ }
+ ];
+
+ mkBookmarksFile = (import ./lib.nix) {inherit lib pkgs;};
+ bookmarks_file = mkBookmarksFile bookmarks;
+in
+ bookmarks_file
diff --git a/modules/home.legacy/conf/firefox/config/bookmarks/lib.nix b/modules/home.legacy/conf/firefox/config/bookmarks/lib.nix
new file mode 100644
index 00000000..d1d89dd2
--- /dev/null
+++ b/modules/home.legacy/conf/firefox/config/bookmarks/lib.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>
+ ''