markdown writting

This commit is contained in:
Hadi
2025-02-04 20:40:54 +01:00
parent 0e5fbb9ea5
commit 6f1bcbf4dc
3 changed files with 230 additions and 165 deletions

View File

@@ -1,172 +1,239 @@
{ config, ... }: { config, ... }:
let let
accent = "#${config.lib.stylix.colors.base0D}"; accent = "#${config.lib.stylix.colors.base0D}";
accent-alt = "#${config.lib.stylix.colors.base08}";
muted = "#${config.lib.stylix.colors.base03}"; muted = "#${config.lib.stylix.colors.base03}";
background = "#${config.lib.stylix.colors.base00}";
in { in {
programs.nixvim = { programs.nixvim = {
plugins.mkdnflow = { # Markdown settings
enable = true; extraFiles."after/ftplugin/markdown.lua".text = ''
modules = { conceal = false; }; vim.bo.tabstop = 2
toDo.symbols = [ " " "-" "x" "!" "/" ]; vim.bo.shiftwidth = 2
mappings = { vim.bo.expandtab = true
MkdnCreateLink = false; '';
MkdnCreateLinkFromClipboard = {
key = "<leader>ml";
modes = [ "n" "v" ];
};
MkdnDecreaseHeading = {
key = "<leader>m-";
modes = "n";
};
MkdnDestroyLink = false;
MkdnEnter = {
key = "<CR>";
modes = [ "v" ];
};
MkdnExtendList = false;
MkdnFoldSection = { # Highlight colors
key = "<leader>mf";
modes = "n";
};
MkdnUnfoldSection = {
key = "<leader>mF";
modes = "n";
};
MkdnFollowLink = {
key = "gd";
modes = "n";
};
MkdnGoBack = false;
MkdnGoForward = false;
MkdnIncreaseHeading = {
key = "<leader>m+";
modes = "n";
};
MkdnMoveSource = false;
MkdnNewListItem = false;
MkdnNewListItemAboveInsert = {
key = "O";
modes = "n";
};
MkdnNewListItemBelowInsert = {
key = "o";
modes = "n";
};
MkdnNextHeading = {
key = "<leader>m#";
modes = "n";
};
MkdnNextLink = false;
MkdnPrevLink = false;
MkdnPrevHeading = {
key = "<leader>m*";
modes = "n";
};
MkdnSTab = false;
MkdnTab = false;
MkdnTableNewColAfter = {
key = "<leader>mc";
modes = "n";
};
MkdnTableNewColBefore = {
key = "<leader>mC";
modes = "n";
};
MkdnTableNewRowAbove = {
key = "<leader>mR";
modes = "n";
};
MkdnTableNewRowBelow = {
key = "<leader>mr";
modes = "n";
};
MkdnTableNextCell = {
key = "<S-Tab>";
modes = "n";
};
MkdnTableNextRow = false;
MkdnTablePrevCell = {
key = "<S-Tab>";
modes = "n";
};
MkdnTablePrevRow = false;
MkdnToggleToDo = {
key = "<C-Space>";
modes = [ "n" "v" ];
};
MkdnUpdateNumbering = {
key = "<leader>mn";
modes = "n";
};
MkdnYankAnchorLink = {
key = "ya";
modes = "n";
};
MkdnYankFileAnchorLink = {
key = "yfa";
modes = "n";
};
};
};
extraFiles = {
"after/ftplugin/markdown.lua".text = ''
vim.bo.tabstop = 2
vim.bo.shiftwidth = 2
vim.bo.expandtab = true
'';
};
highlight = { highlight = {
RenderMarkdownBg.bg = background; Headline1 = {
RenderMarkdownH1.fg = accent; bg = "#4B4266";
RenderMarkdownH2.fg = accent; fg = accent;
RenderMarkdownH3.fg = accent-alt; };
RenderMarkdownH4.fg = accent-alt; Headline2 = {
RenderMarkdownH5.fg = accent-alt; bg = "#3B575E";
RenderMarkdownH6.fg = accent-alt; fg = "#9FFEFE";
};
Headline3 = {
bg = "#3B5742";
fg = "#9FFE9F";
};
Headline4 = {
bg = "#574842";
fg = "#FECB9F";
};
RenderMarkdownTodo.fg = "#f78c6c"; RenderMarkdownTodo.fg = "#f78c6c";
RenderMarkdownWarning.fg = "#ff5370"; RenderMarkdownWarning.fg = "#ff5370";
RenderMarkdownDone.fg = muted; RenderMarkdownDone.fg = muted;
}; };
plugins.render-markdown = {
enable = true; # Plugins
settings = { plugins = {
heading = { # Paste images from clipboard
icons = [ "# " "󰲣 " "󰲥 " "󰲧 " "󰲩 " "󰲫 " ]; clipboard-image = {
sign = false; enable = true;
backgrounds = [ "RenderMarkdownBg" ]; settings = { default.img_dir = [ "%:p:h" "img" ]; };
foregrounds = [ };
"RenderMarkdownH1"
"RenderMarkdownH2" # Zen mode
"RenderMarkdownH3" zen-mode = {
"RenderMarkdownH4" enable = true;
"RenderMarkdownH5" settings = {
"RenderMarkdownH6" on_close = ''
]; function()
end
'';
on_open = ''
function()
end
'';
plugins = {
gitsigns = { enabled = false; };
options = {
enabled = true;
ruler = false;
showcmd = false;
laststatus = "0";
kitty = {
enabled = true;
font = "+4";
};
};
};
window = {
backdrop = 0.95;
height = 1;
options = {
signcolumn = "no";
number = false;
relativenumber = false;
};
width = 0.8;
};
}; };
checkbox = { };
unchecked = { highlight = "RenderMarkdownTodo"; };
checked = { highlight = "RenderMarkdownDone"; }; # Display images in markdown
custom = { image = {
pending = { enable = true;
raw = "[-]"; integrations.markdown = {
rendered = " "; clearInInsertMode = true;
highlight = "RenderMarkdownTodo"; onlyRenderImageAtCursor = true;
}; };
important = { };
raw = "[!]";
rendered = "󰰱 "; # This one takes care of the markdown titles
highlight = "RenderMarkdownWarning"; headlines = {
}; enable = true;
cancel = { settings = {
raw = "[/]"; markdown = {
rendered = "󱋬 "; headline_highlights =
highlight = "RenderMarkdownWarning"; [ "Headline1" "Headline2" "Headline3" "Headline4" ];
};
};
};
# MkdnFlow is a plugin that helps you navigate markdown files
mkdnflow = {
enable = true;
modules = { conceal = false; };
toDo.symbols = [ " " "-" "x" "!" "/" ];
mappings = {
MkdnCreateLink = false;
MkdnCreateLinkFromClipboard = {
key = "<leader>ml";
modes = [ "n" "v" ];
};
MkdnDecreaseHeading = {
key = "<leader>m-";
modes = "n";
};
MkdnDestroyLink = false;
MkdnEnter = {
key = "<CR>";
modes = [ "v" ];
};
MkdnExtendList = false;
MkdnFoldSection = {
key = "<leader>mf";
modes = "n";
};
MkdnUnfoldSection = {
key = "<leader>mF";
modes = "n";
};
MkdnFollowLink = {
key = "gd";
modes = "n";
};
MkdnGoBack = false;
MkdnGoForward = false;
MkdnIncreaseHeading = {
key = "<leader>m+";
modes = "n";
};
MkdnMoveSource = false;
MkdnNewListItem = false;
MkdnNewListItemAboveInsert = {
key = "O";
modes = "n";
};
MkdnNewListItemBelowInsert = {
key = "o";
modes = "n";
};
MkdnNextHeading = {
key = "<leader>m#";
modes = "n";
};
MkdnNextLink = false;
MkdnPrevLink = false;
MkdnPrevHeading = {
key = "<leader>m*";
modes = "n";
};
MkdnSTab = false;
MkdnTab = false;
MkdnTableNewColAfter = {
key = "<leader>mc";
modes = "n";
};
MkdnTableNewColBefore = {
key = "<leader>mC";
modes = "n";
};
MkdnTableNewRowAbove = {
key = "<leader>mR";
modes = "n";
};
MkdnTableNewRowBelow = {
key = "<leader>mr";
modes = "n";
};
MkdnTableNextCell = {
key = "<S-Tab>";
modes = "n";
};
MkdnTableNextRow = false;
MkdnTablePrevCell = {
key = "<S-Tab>";
modes = "n";
};
MkdnTablePrevRow = false;
MkdnToggleToDo = {
key = "<C-Space>";
modes = [ "n" "v" ];
};
MkdnUpdateNumbering = {
key = "<leader>mn";
modes = "n";
};
MkdnYankAnchorLink = {
key = "ya";
modes = "n";
};
MkdnYankFileAnchorLink = {
key = "yfa";
modes = "n";
};
};
};
# Render UI elements
render-markdown = {
enable = true;
settings = {
heading = { enabled = false; };
checkbox = {
unchecked = { highlight = "RenderMarkdownTodo"; };
checked = { highlight = "RenderMarkdownDone"; };
custom = {
pending = {
raw = "[-]";
rendered = " ";
highlight = "RenderMarkdownTodo";
};
important = {
raw = "[!]";
rendered = "󰰱 ";
highlight = "RenderMarkdownWarning";
};
cancel = {
raw = "[/]";
rendered = "󱋬 ";
highlight = "RenderMarkdownWarning";
};
}; };
}; };
}; };

View File

@@ -7,6 +7,11 @@
settings = { settings = {
default_file_explorer = false; default_file_explorer = false;
skip_confirm_for_simple_edits = true; skip_confirm_for_simple_edits = true;
view_options.is_hidden_file = ''
function(name, bufnr)
return vim.startswith(name, ".") or name == "img"
end
'';
win_options = { win_options = {
concealcursor = "ncv"; concealcursor = "ncv";
conceallevel = 3; conceallevel = 3;

View File

@@ -3,17 +3,10 @@
highlightOverride = { highlightOverride = {
FloatBorder.fg = "#${config.lib.stylix.colors.base0D}"; FloatBorder.fg = "#${config.lib.stylix.colors.base0D}";
}; };
nixpkgs.config = { allowUnfree = true; };
plugins = { plugins = {
# FIXME: broken on unstable copilot-vim.enable = true;
# copilot-vim.enable = true;
flash.enable = true; flash.enable = true;
image = {
enable = true;
integrations.markdown = {
clearInInsertMode = true;
onlyRenderImageAtCursor = true;
};
};
tmux-navigator.enable = true; tmux-navigator.enable = true;
comment.enable = true; comment.enable = true;
nvim-autopairs.enable = true; nvim-autopairs.enable = true;