From: john at keeping.me.uk (John Keeping)
Subject: Rendering of README.md inline with inner tree view dirs
Date: Mon, 11 Jun 2018 16:38:58 +0100 [thread overview]
Message-ID: <20180611153858.GJ1922@john.keeping.me.uk> (raw)
In-Reply-To: <c2b0bba9-a2c4-6287-41a7-f68dc411a7d9@warmcat.com>
On Mon, Jun 11, 2018 at 04:05:38PM +0800, Andy Green wrote:
>
>
> On 06/11/2018 03:53 PM, Christian Hesse wrote:
> > Andy Green <andy at warmcat.com> on Mon, 2018/06/11 15:38:
> >> On 06/11/2018 03:31 PM, Christian Hesse wrote:
> >>> Andy Green <andy at warmcat.com> on Mon, 2018/06/11 15:08:
> >>>> Hi -
> >>>>
> >>>> I have been using cgit for many years.
> >>>>
> >>>> Currently I am detaching my (LGPL) project from github.
> >>>>
> >>>> One noticeable problem diverting people from github to cgit is although
> >>>> it renders very well the toplevel "about" README.md
> >>>>
> >>>> https://libwebsockets.org/git/libwebsockets/about/
> >>>>
> >>>> It doesn't seem to have a way to render inline inner dir README.md as
> >>>> github does. This is quite a small thing but very useful, eg
> >>>>
> >>>> https://github.com/warmcat/libwebsockets/tree/master/minimal-examples
> >>>>
> >>>> vs
> >>>>
> >>>> https://libwebsockets.org/git/libwebsockets/tree/minimal-examples
> >>>>
> >>>> Is there a way to do it already in the main cgit project? For nonpublic
> >>>> projects, I screenscraped some patches from John Keeping from 2016 that
> >>>> do the same thing, but poking around, these don't seem to have made it
> >>>> in.
> >>>>
> >>>> If there's no existing way to do it and those patches are shivering in
> >>>> the cold, all alone, can I suggest they would perhaps be extremely
> >>>> useful to people in a similar position, needing to decouple users from
> >>>> github but needing to generally present the same tree in a similar way?
> >>>
> >>> This is what you want?
> >>>
> >>> https://libwebsockets.org/git/libwebsockets/about/minimal-examples/README.md
> >>
> >> Yeah.
> >>
> >> But inline after the tree view, a la github.
> >>
> >> This enables a scheme where inner dirs give their own overview without
> >> interrupting navigation. Eg, a couple of levels down...
> >>
> >> https://github.com/warmcat/libwebsockets/tree/master/lib/roles
> >
> > I think this is not possible with current code. What patches from John did
> > you apply?
>
>
> Author: John Keeping <john at keeping.me.uk>
> Date: Wed Dec 14 20:35:47 2016 +0800
>
> Use string list strdup_strings for mimetypes
>
> This allows applying filters to files in the repository, for example to
> render Markdown or AsciiDoc as HTML.
>
> Signed-off-by: John Keeping <john at keeping.me.uk>
>
> Author: John Keeping <john at keeping.me.uk>
> Date: Wed Dec 14 20:35:47 2016 +0800
>
> ui-tree: split out buffer printing
>
> Signed-off-by: John Keeping <john at keeping.me.uk>
>
> Author: John Keeping <john at keeping.me.uk>
> Date: Wed Dec 14 20:41:11 2016 +0800
>
> Parse render filters from the config
>
> Render filters will be used to present rendered content in the tree
> view, for example to display Markdown source rendered as HTML.
>
> We will add support for using these from the tree view in the following
> commits.
>
> Signed-off-by: John Keeping <john at keeping.me.uk>
>
> Author: John Keeping <john at keeping.me.uk>
> Date: Wed Dec 14 20:36:51 2016 +0800
>
> Add source page
>
> We are about to introduce rendering of content for the tree view. This
> source page will allow bypassing the renderer and accessing the content
> of the current tree view.
>
> Signed-off-by: John Keeping <john at keeping.me.uk>
>
> Author: John Keeping <john at keeping.me.uk>
> Date: Wed Dec 14 20:35:47 2016 +0800
>
> Use string list strdup_strings for mimetypes
>
> There's no need to do this manually with the string list API will do it
> for us.
>
> Signed-off-by: John Keeping <john at keeping.me.uk>
>
> It's quite possible they aren't what I am asking for, and / or already
> applied. They were "good enough" for what I needed to do a couple of
> years ago. But now I am explicitly replacing github, so comparing the
> rendering is in scope for me when it just needed to be able to render
> anything at all back then.
>
> > BTW, linking withing formatted pages works, so this could be a step forward:
> >
> > diff --git a/README.md b/README.md
> > index c6222b75..fee7dcae 100644
> > --- a/README.md
> > +++ b/README.md
> > @@ -9,7 +9,7 @@ News
> >
> > ## v3.0.0 released
> >
> > -See the changelog for info https://libwebsockets.org/git/libwebsockets/tree/changelog?h=v3.0-stable
> > +See the [changelog](changelog?h=v3.0-stable) for info.
> >
> > ## Major CI improvements for QA
> >
> > @@ -56,7 +56,7 @@ but the other browsers will catch up soon.
> >
> > ## New "minimal examples"
> >
> > -https://libwebsockets.org/git/libwebsockets/tree/minimal-examples
> > +[minimal-examples](minimal-examples/README.md)
> >
> > These are like the test apps, but focus on doing one thing, the best way, with the minimum amount of code. For example the minimal-http-server serves the cwd on http/1 or http/2 in 50 LOC. Same thing with tls is just three more lines.
> >
>
> I think what github did comes into its own when you are in the mode of
> coming new to a project and trying to understand what you are even
> looking at from the project layout in the filespace. So they may well
> be clicking around in the tree view, it's perfect if any project
> documentation in that dir just magically appears after the already
> expected navigation context explaining it.
>
> Basically any available docs follow along contextually.
>
> I think it's desirable under all circumstances, since it's only coming
> if someone bothered to put relevant docs right there... if no way to do
> it right now and no better ideas, I will try to understand how cgit
> works for this tomorrow and see if any ideas.
I think this is a potentially useful feature; long before GitHub existed
web interfaces to file servers have included README content with the
directory listing.
Given the render mode patches you listed above, I think it should be
reasonably straightforward to add this feature in ui-tree.c with the
following changes:
- Add fields to walk_tree_context to remember the filename and object_id
of a target README file (this needs some configuration to answer the
question: what is a README file?) and populate these during the normal
tree walk (probably in ls_item(), being careful to only accept blobs)
- In ls_tail(), if the walk_tree_context has valid values for those
fields, then read the blob content from the object_id and call
render_buffer()
This will re-use the existing render filter for "inline" README content,
which I think is a good thing. I think the filenames for READMEs will
have to be a new configuration (the existing "readme" configuration
takes a blob ref whereas this option wants a simple filename).
John
next prev parent reply other threads:[~2018-06-11 15:38 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-11 7:08 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 [this message]
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
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=20180611153858.GJ1922@john.keeping.me.uk \
--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).