From: andy at warmcat.com (Andy Green)
Subject: [PATCH v3 12/17] ui-tree: render any matching README file in tree view
Date: Wed, 20 Jun 2018 08:00:45 +0800 [thread overview]
Message-ID: <3ca574ca-4f3d-96e0-304b-cc1ceb4d087f@warmcat.com> (raw)
In-Reply-To: <20180619214944.GC1922@john.keeping.me.uk>
On 06/20/2018 05:49 AM, John Keeping wrote:
> On Tue, Jun 19, 2018 at 05:02:27PM +0800, Andy Green wrote:
>> While listing the items in tree view, we collect a list
>> of any filenames that match any tree-readme entries from the
>> config file.
>>
>> After the tree view has been shown, we iterate through any
>> collected readme files rendering them inline.
>
> There's only one now, the commit message isn't quite accurate any more!
Right... the name changed as well... I updated it.
-Andy
>> Signed-off-by: Andy Green <andy at warmcat.com>
>> Reviewed-by: John Keeping <john at keeping.me.uk>
>> ---
>> ui-tree.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
>> 1 file changed, 52 insertions(+), 1 deletion(-)
>>
>> diff --git a/ui-tree.c b/ui-tree.c
>> index 1ccbb22..6ffd4dd 100644
>> --- a/ui-tree.c
>> +++ b/ui-tree.c
>> @@ -1,6 +1,6 @@
>> /* ui-tree.c: functions for tree output
>> *
>> - * Copyright (C) 2006-2017 cgit Development Team <cgit at lists.zx2c4.com>
>> + * Copyright (C) 2006-2018 cgit Development Team <cgit at lists.zx2c4.com>
>> *
>> * Licensed under GNU General Public License v2
>> * (see COPYING for full license text)
>> @@ -12,8 +12,10 @@
>> #include "ui-shared.h"
>>
>> struct walk_tree_context {
>> + struct object_id inline_oid;
>> char *curr_rev;
>> char *match_path;
>> + char *inline_filename;
>> int state;
>> bool use_render;
>> };
>> @@ -325,11 +327,19 @@ static int ls_item(const struct object_id *oid, struct strbuf *base,
>> &fullpath);
>> } else {
>> char *ext = strrchr(name, '.');
>> +
>> strbuf_addstr(&class, "ls-blob");
>> if (ext)
>> strbuf_addf(&class, " %s", ext + 1);
>> +
>> cgit_tree_link(name, NULL, class.buf, ctx.qry.head,
>> walk_tree_ctx->curr_rev, fullpath.buf);
>> +
>> + if (!walk_tree_ctx->inline_filename &&
>> + string_list_has_string(&ctx.repo->inline_readme, name)) {
>> + walk_tree_ctx->inline_filename = xstrdup(pathname);
>> + oidcpy(&walk_tree_ctx->inline_oid, oid);
>> + }
>> }
>> htmlf("</td><td class='ls-size'>%li</td>", size);
>>
>> @@ -367,7 +377,46 @@ static void ls_head(void)
>>
>> static void ls_tail(struct walk_tree_context *walk_tree_ctx)
>> {
>> + struct cgit_filter *render;
>> + enum object_type type;
>> + char *buf, *mimetype;
>> + unsigned long size;
>> +
>> html("</table>\n");
>> +
>> + if (!walk_tree_ctx->inline_filename)
>> + goto done;
>> +
>> + type = oid_object_info(the_repository, &walk_tree_ctx->inline_oid, &size);
>> + if (type == OBJ_BAD)
>> + goto done;
>> +
>> + buf = read_object_file(&walk_tree_ctx->inline_oid, &type, &size);
>> + if (!buf)
>> + goto done;
>> +
>> + /* create a vertical gap between tree nav / inline */
>> + html("<table class=\"tabs\"><tr><td></td></tr></table>");
>> +
>> + render = get_render_for_filename(walk_tree_ctx->inline_filename);
>> + mimetype = render ? NULL : get_mimetype_for_filename(
>> + walk_tree_ctx->inline_filename);
>> +
>> + htmlf("<h2>%s</h2>", walk_tree_ctx->inline_filename);
>> + html("<div class=blob> </div>\n");
>> +
>> + if (render)
>> + render_buffer(render, walk_tree_ctx->inline_filename,
>> + buf, size);
>> + else if (mimetype)
>> + include_file(walk_tree_ctx->inline_filename, mimetype);
>> + else
>> + print_buffer(walk_tree_ctx->inline_filename, buf, size);
>> +
>> + free(mimetype);
>> + free(buf);
>> +
>> +done:
>> cgit_print_layout_end();
>> }
>>
>> @@ -478,4 +527,6 @@ void cgit_print_tree(const char *rev, char *path, bool use_render)
>>
>> cleanup:
>> free(walk_tree_ctx.curr_rev);
>> + if (walk_tree_ctx.inline_filename)
>> + free(walk_tree_ctx.inline_filename);
>> }
>>
>> _______________________________________________
>> CGit mailing list
>> CGit at lists.zx2c4.com
>> https://lists.zx2c4.com/mailman/listinfo/cgit
next prev parent reply other threads:[~2018-06-20 0:00 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-11 7:08 Rendering of README.md inline with inner tree view dirs andy
2018-06-11 7:31 ` list
2018-06-11 7:38 ` andy
2018-06-11 7:53 ` list
2018-06-11 8:05 ` andy
2018-06-11 15:38 ` john
2018-06-12 5:53 ` andy
2018-06-12 8:35 ` list
2018-06-12 9:24 ` john
2018-06-12 9:27 ` andy
2018-06-12 12:07 ` john
2018-06-12 9:31 ` john
2018-06-13 1:47 ` andy
2018-06-13 2:01 ` [PATCH 00/11] Render READMEs inline in tree view andy
2018-06-13 2:01 ` [PATCH 01/11] Use string list strdup_strings for mimetypes andy
2018-06-13 2:01 ` [PATCH 02/11] Add source page andy
2018-06-13 2:01 ` [PATCH 03/11] Parse render filters from the config andy
2018-06-13 2:01 ` [PATCH 04/11] ui-tree: split out buffer printing andy
2018-06-13 2:01 ` [PATCH 05/11] ui-tree: use render fileters to display content andy
2018-06-16 14:26 ` john
2018-06-16 23:16 ` andy
2018-06-13 2:02 ` [PATCH 06/11] ui-tree: free read_sha1_file() buffer after use andy
2018-06-16 14:24 ` john
2018-06-13 2:02 ` [PATCH 07/11] ui-blame: " andy
2018-06-16 14:23 ` john
2018-06-16 23:17 ` andy
2018-06-13 2:02 ` [PATCH 08/11] ui-tree: print_object: add is_inline param andy
2018-06-16 14:38 ` john
2018-06-13 2:02 ` [PATCH 09/11] ui-tree: ls_tail: add walk table param andy
2018-06-16 14:38 ` john
2018-06-13 2:02 ` [PATCH 10/11] config: add tree-readme list andy
2018-06-16 14:44 ` john
2018-06-13 2:02 ` [PATCH 11/11] ui-tree: render any matching README file in tree view andy
2018-06-16 14:58 ` john
2018-06-14 3:47 ` [PATCH 00/11] Render READMEs inline " andy
2018-06-16 14:17 ` john
2018-06-19 9:01 ` [PATCH v3 00/17] " andy
2018-06-19 9:01 ` [PATCH v3 01/17] manpage: fix sorting order andy
2018-06-19 21:35 ` john
2018-06-19 9:01 ` [PATCH v3 02/17] blame: css: make blame highlight div absolute and at parent top andy
2018-06-19 9:01 ` [PATCH v3 03/17] Use string list strdup_strings for mimetypes andy
2018-06-19 9:01 ` [PATCH v3 04/17] Add source page andy
2018-06-19 9:01 ` [PATCH v3 05/17] Parse render filters from the config andy
2018-06-19 21:37 ` john
2018-06-19 9:01 ` [PATCH v3 06/17] ui-tree: split out buffer printing andy
2018-06-19 9:02 ` [PATCH v3 07/17] ui-tree: use render filters to display content andy
2018-06-19 9:02 ` [PATCH v3 08/17] ui-blame: free read_sha1_file() buffer after use andy
2018-06-19 21:46 ` john
2018-06-19 9:02 ` [PATCH v3 09/17] ui-tree: ls_tail: add walk table param andy
2018-06-19 9:02 ` [PATCH v3 10/17] config: add global inline-readme list andy
2018-06-19 9:02 ` [PATCH v3 11/17] config: add repo " andy
2018-06-19 9:02 ` [PATCH v3 12/17] ui-tree: render any matching README file in tree view andy
2018-06-19 21:49 ` john
2018-06-20 0:00 ` andy [this message]
2018-06-19 9:02 ` [PATCH v3 13/17] md2html: add asset mapping andy
2018-06-19 9:02 ` [PATCH v3 14/17] md2html-add-asset-postfix-arg andy
2018-06-19 9:02 ` [PATCH v3 15/17] ui-shared: deduplicate some code in repolink andy
2018-06-19 21:48 ` john
2018-06-19 9:02 ` [PATCH v3 16/17] ui-shared: add helper for generating non-urlencoded links andy
2018-06-19 21:55 ` john
2018-06-20 0:07 ` andy
2018-06-19 9:02 ` [PATCH v3 17/17] render: adapt for providing extra filter args for plain andy
2018-06-19 21:56 ` john
2018-06-20 10:11 ` [PATCH v4 00/16] Render READMEs inline in tree view andy
2018-06-20 10:12 ` [PATCH v4 01/16] manpage: fix sorting order andy
2018-06-27 17:27 ` Jason
2018-06-20 10:12 ` [PATCH v4 02/16] Use string list strdup_strings for mimetypes andy
2018-06-27 17:28 ` Jason
2018-06-20 10:12 ` [PATCH v4 03/16] Add source page andy
2018-06-20 10:12 ` [PATCH v4 04/16] Parse render filters from the config andy
2018-06-20 10:12 ` [PATCH v4 05/16] ui-tree: split out buffer printing andy
2018-06-20 10:12 ` [PATCH v4 06/16] ui-tree: use render filters to display content andy
2018-06-20 10:12 ` [PATCH v4 07/16] ui-tree: ls_tail: add walk table param andy
2018-06-20 10:12 ` [PATCH v4 08/16] config: add global inline-readme list andy
2018-06-20 10:12 ` [PATCH v4 09/16] config: add repo " andy
2018-06-20 10:12 ` [PATCH v4 10/16] ui-tree: render any matching README file in tree view andy
2018-06-20 10:12 ` [PATCH v4 11/16] md2html: add asset mapping andy
2018-06-27 17:32 ` Jason
2018-06-27 20:00 ` john
2018-06-20 10:12 ` [PATCH v4 12/16] md2html: add asset postfix arg andy
2018-06-20 10:13 ` [PATCH v4 13/16] ui-shared: deduplicate some code in repolink andy
2018-06-27 17:29 ` Jason
2018-06-27 17:50 ` Jason
2018-06-20 10:13 ` [PATCH v4 14/16] ui-shared: add helper for generating non-urlencoded links andy
2018-06-20 10:13 ` [PATCH v4 15/16] render: adapt for providing extra filter args for plain andy
2018-06-20 10:41 ` andy
2018-06-20 10:13 ` [PATCH v4 16/16] md2html: change css name to not conflict with highlight andy
2018-06-27 17:37 ` Jason
2018-06-27 21:58 ` andy
2018-06-28 8:32 ` john
2018-06-23 11:04 ` [PATCH v4 00/16] Render READMEs inline in tree view john
2018-06-23 11:10 ` andy
2018-06-27 17:18 ` Jason
2018-06-27 17:26 ` Fancier Source view [Was: Re: [PATCH v4 00/16] Render READMEs inline in tree view] Jason
2018-06-27 20:05 ` john
2018-06-27 19:51 ` [PATCH v4 00/16] Render READMEs inline in tree view john
2018-06-27 22:48 ` andy
2018-06-27 23:22 ` Jason
2018-06-28 8:28 ` john
2018-07-03 19:34 ` Jason
2018-07-03 19:53 ` john
2018-07-03 19:58 ` Jason
2018-06-27 22:36 ` andy
2018-06-27 22:46 ` Jason
2018-06-27 23:08 ` andy
2018-06-16 14:12 ` Rendering of README.md inline with inner tree view dirs john
2018-06-16 17:35 ` john
2018-06-18 2:22 ` andy
2018-06-18 2:56 ` [PATCH v2 00/15] Render READMEs inline in tree view andy
2018-06-18 2:57 ` [PATCH v2 01/15] manpage: fix sorting order andy
2018-06-18 2:57 ` [PATCH v2 02/15] gcc8.1: fix strncat warning andy
2018-07-03 23:45 ` Jason
2018-07-03 23:47 ` andy
2018-07-03 23:50 ` Jason
2018-06-18 2:57 ` [PATCH v2 03/15] Use string list strdup_strings for mimetypes andy
2018-06-18 2:57 ` [PATCH v2 04/15] Add source page andy
2018-06-18 19:08 ` john
2018-06-18 19:27 ` andy
2018-06-18 2:57 ` [PATCH v2 05/15] Parse render filters from the config andy
2018-06-18 2:57 ` [PATCH v2 06/15] ui-tree: split out buffer printing andy
2018-06-18 2:57 ` [PATCH v2 07/15] ui-tree: use render filters to display content andy
2018-06-18 2:57 ` [PATCH v2 08/15] ui-blame: free read_sha1_file() buffer after use andy
2018-06-18 2:58 ` [PATCH v2 09/15] ui-tree: ls_tail: add walk table param andy
2018-06-18 2:58 ` [PATCH v2 10/15] config: add global inline-readme list andy
2018-06-18 19:32 ` john
2018-06-18 2:58 ` [PATCH v2 11/15] config: add repo " andy
2018-06-18 19:30 ` john
2018-06-18 2:58 ` [PATCH v2 12/15] ui-tree: render any matching README file in tree view andy
2018-06-18 19:36 ` john
2018-06-19 1:55 ` andy
2018-06-19 8:31 ` john
2018-06-19 8:38 ` andy
2018-06-18 2:58 ` [PATCH v2 13/15] md2html: add asset mapping andy
2018-06-18 2:58 ` [PATCH v2 14/15] md2html-add-asset-postfix-arg andy
2018-06-18 19:21 ` john
2018-06-19 3:55 ` andy
2018-06-19 8:34 ` john
2018-06-18 2:58 ` [PATCH v2 15/15] render: adapt for providing extra filter args for plain andy
2018-06-18 19:25 ` john
2018-06-19 3:34 ` andy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3ca574ca-4f3d-96e0-304b-cc1ceb4d087f@warmcat.com \
--to=cgit@lists.zx2c4.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).