mirror of
				https://github.com/folke/lazy.nvim.git
				synced 2025-10-31 06:21:14 +00:00 
			
		
		
		
	feat(help): accept patterns for readme (#269)
This commit is contained in:
		
					parent
					
						
							
								11eee43c7e
							
						
					
				
			
			
				commit
				
					
						d521a25cfc
					
				
			
		
					 3 changed files with 12 additions and 7 deletions
				
			
		|  | @ -436,7 +436,7 @@ return { | |||
|   -- when the readme opens with :help it will be correctly displayed as markdown | ||||
|   readme = { | ||||
|     root = vim.fn.stdpath("state") .. "/lazy/readme", | ||||
|     files = { "README.md" }, | ||||
|     files = { "README.md", "lua/**/README.md" }, | ||||
|     -- only generate markdown helptags for plugins that dont have docs | ||||
|     skip_if_doc_exists = true, | ||||
|   }, | ||||
|  |  | |||
|  | @ -135,7 +135,7 @@ M.defaults = { | |||
|   -- when the readme opens with :help it will be correctly displayed as markdown | ||||
|   readme = { | ||||
|     root = vim.fn.stdpath("state") .. "/lazy/readme", | ||||
|     files = { "README.md" }, | ||||
|     files = { "README.md", "lua/**/README.md" }, | ||||
|     -- only generate markdown helptags for plugins that dont have docs | ||||
|     skip_if_doc_exists = true, | ||||
|   }, | ||||
|  |  | |||
|  | @ -7,23 +7,28 @@ function M.index(plugin) | |||
|   if Config.options.readme.skip_if_doc_exists and vim.loop.fs_stat(plugin.dir .. "/doc") then | ||||
|     return {} | ||||
|   end | ||||
|   local files = vim.tbl_flatten(vim.tbl_map(function(file) | ||||
|     return vim.fn.expand(plugin.dir .. "/" .. file, false, true) | ||||
|   end, Config.options.readme.files)) | ||||
|   ---@type table<string,{file:string, tag:string, line:string}> | ||||
|   local tags = {} | ||||
|   for _, file in ipairs(Config.options.readme.files) do | ||||
|     file = plugin.dir .. "/" .. file | ||||
|   for _, file in ipairs(files) do | ||||
|     file = Util.norm(file) | ||||
|     if vim.loop.fs_stat(file) then | ||||
|       local rel_file = file:sub(#plugin.dir + 1) | ||||
|       local tag_filename = string.gsub(plugin.name .. vim.fn.fnamemodify(rel_file, ":h:gs?/?-?"), "-$", "") | ||||
|       local lines = vim.split(Util.read_file(file), "\n") | ||||
|       for _, line in ipairs(lines) do | ||||
|         local title = line:match("^#+%s*(.*)") | ||||
|         if title then | ||||
|           local tag = plugin.name .. "-" .. title:lower():gsub("%W+", "-") | ||||
|           local tag = tag_filename .. "-" .. title:lower():gsub("%W+", "-") | ||||
|           tag = tag:gsub("%-+", "-"):gsub("%-$", "") | ||||
|           line = line:gsub("([%[%]/])", "\\%1") | ||||
|           tags[tag] = { tag = tag, line = line, file = plugin.name .. ".md" } | ||||
|           tags[tag] = { tag = tag, line = line, file = tag_filename .. ".md" } | ||||
|         end | ||||
|       end | ||||
|       table.insert(lines, [[<!-- vim: set ft=markdown: -->]]) | ||||
|       Util.write_file(Config.options.readme.root .. "/doc/" .. plugin.name .. ".md", table.concat(lines, "\n")) | ||||
|       Util.write_file(Config.options.readme.root .. "/doc/" .. tag_filename .. ".md", table.concat(lines, "\n")) | ||||
|     end | ||||
|   end | ||||
|   return tags | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue