List for cgit developers and users
 help / color / mirror / Atom feed
From: john at keeping.me.uk (John Keeping)
Subject: Rendering of README.md inline with inner tree view dirs
Date: Sat, 16 Jun 2018 15:12:09 +0100	[thread overview]
Message-ID: <20180616141209.GQ1922@john.keeping.me.uk> (raw)
In-Reply-To: <29df7d5c-2556-86e7-45bd-08e1e71a1e57@warmcat.com>

On Wed, Jun 13, 2018 at 09:47:38AM +0800, Andy Green wrote:
> 
> 
> On 06/12/2018 05:31 PM, John Keeping wrote:
> > On Tue, Jun 12, 2018 at 01:53:27PM +0800, Andy Green wrote:
> >> On 06/11/2018 11:38 PM, John Keeping wrote:
> >>> On Mon, Jun 11, 2018 at 04:05:38PM +0800, Andy Green wrote:
> 
> >> 1) I did not attempt to have it learn about suitable filenames from the
> >> config yet, I just have ls_item() looking for "README.md".  I saw
> >> there's already a way (readme=) for the config to list them for the
> >> about page... basically now tree view becomes a superset of the
> >> operation of the about page; the about page content appears in tree view.
> >>
> >> So do you have any thoughts about just re-using that list?
> > 
> > I think that list is refs to blobs, so you can specify something like:
> > 
> > 	refs/heads/wiki:README.md
> > 
> > but here we need base filenames to look for in the current directory, so
> > it will have to be a new config variable.
> 
> OK.  I added a new cgit-scope variable that appends filenames to be 
> considered for showing in tree view, eg,
> 
> tree-readme=README.md

This should be overridable at the repo level to match our other
configuration variables which affect this sort of behaviour.

Also, if this was my bikeshed I'd paint it as "inline-readme", but I
don't feel strongly about that.

> >> 2) In the current patches, I allowed for ls_item to discover a
> >> linked-list of files and render them later one after the other.  Eg, a
> >> dir of READMEs would render them like that.  It's welcome or preferable
> >> to just restrict it to one?
> > 
> > My choice would be to take the first matching file, but I don't have a
> > strong opinion on what is the right behaviour.
> 
> I'll leave this as a list for the first try.  If it looks excessive I'll 
> reduce it to just the one.

The code is definitely simpler if it's just one, and I'm not sure what
benefit we get from including multiple files.  But if you have a use
case for multiple readme files, then a list is okay.

> >> 3) You can see on the top level of the tree, the README.md references
> >>
> >> <img alt="lws-overview" src="./doc-assets/lws-overview.png">
> >>
> >> This url format works in github.  In the cgit About view, this resolves to
> >>
> >> /git/libwebsockets/about/doc-assets/lws-overview.png
> >>
> >> which also serves the right mimetype and content.  So that kind of URL
> >> format is useful.  But when we render the same markup and relative path
> >> via /tree/, it tries to show an html page containing the content.
> >> That's why the picture is missing in the /tree/ view... other pictures
> >> in that markup are coming with absolute URLs outside of cgit and are
> >> working.
> >>
> >> I can have the direct content from cgit generally, but either the markup
> >> needs fixing up to
> >>
> >> /git/libwebsockets/plain/doc-assets/lws-overview.png
> >>
> >> or /tree/ needs to learn to do what /about/ does.
> >>
> >> I'm wondering whether mmd2html might grow an environment var to know the
> >> base part for URLS that want to direct-render from cgit.  Or if better
> >> to follow what /about/ did in /tree/.
> > 
> > Making tree do this will break the normal use of tree unless we add some
> > extra query parameter or path element.  Given that, I think teaching the
> > renderer to use a path to /about/ is the right thing to do.
> 
> OK.  Unfortunately I don't know python very well.  It looks like the 
> markdown python library is able to be told to use extensions that are 
> capable to do this
> 
> https://python-markdown.github.io/extensions/api/
> 
> from the md2html wrapper.  But I don't know enough python to do it.
> 
> It's a shame, because in-tree assets correctly follow the ref context 
> being viewed, eg, if you look at a v2 branch you see v2 pngs, master you 
> see master pngs etc.
> 
> I'll "solve" this part for now by changing the README to use external URLs.

Yeah, I think we have to solve it by having the filter apply a mapping.
We have ui-plain which provides the right content for images, but what
should we do for link targets?

For the purpose of discussion, consider the following HTML fragment that
could be generated by rendering a README file:

	<img src="dataflow.png">
	<p>For more details see <a href="dataflow.html">the dedicated
	data flow document.</p>

If dataflow.html is generated from a source file in a similar way, then
it doesn't exist in the repository and we can't link to it, so the ideal
output ends up being something like:

	<img src="/repo/plain/dataflow.png">
	<p>For more details see <a href="dataflow.txt">the dedicated
	data flow document.</p>

The render filter API isn't finalised yet, so we can change the
parameters that are passed in order to add more information for the
renderer to use.  At the very least I think we should add a parameter
for the asset prefix which is essentially the tree path with /tree/
replaces with /plain/.

However, I'm not sure how to handle relative links: do we need to pass
additional parameters for this?  Or can we rely on a render filter doing
the right thing?


Regards,
John


  parent reply	other threads:[~2018-06-16 14:12 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
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                 ` john [this message]
2018-06-16 17:35                   ` Rendering of README.md inline with inner tree view dirs 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=20180616141209.GQ1922@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).