| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Detect path tokens in prose (must contain a "/") and inline <code> spans
(matched verbatim, so bare Makefile/README link too) and turn them into
links to the tree/ (or about/ for *.md) view — but ONLY when the token
resolves to a path that actually exists in the repo, which we learn from
`git ls-tree -r -t` at the default branch. <pre> code blocks, existing
<a> links (no nested anchors) and tag attributes are never touched;
tokens resolve relative to the rendered file dir or the repo root.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The list-interrupt preprocessor inserted a blank line before any bullet
that followed a non-item, non-4-space-indented line. When a list item
wrapped onto a 2-space-indented continuation line, the *next* item looked
like a paragraph->list transition, so a blank got injected between items
— turning a tight list into a loose one (every <li> wrapped in <p>), as
seen in docs/internals.md "Writing programs in C".
Track list state and only interrupt an actual paragraph: a bullet that
continues an already-open list (or its indented continuation lines) no
longer triggers a blank-line insert. The original paragraph->list
interrupt and the "1985." ordered-list guard are unchanged.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Links to markdown files now point at /<repo>/about/<path> (rendered
through the about-filter) instead of /<repo>/tree/<path> (raw blob), so
clicking a README link to another .md shows rendered markdown.
Also resolve relative links against the rendered file's own directory:
about-formatting.sh now forwards the filename cgit passes ($1) to
md2html as argv[1], and md2html uses dirname(argv[1]) as the base. This
makes links *inside* a rendered subpage (docs/foo.md -> ./bar.md,
../README.md, images) resolve correctly. Non-markdown files and
directories still go to tree/; images to plain/; about/ links carry no
?h= since the about view renders against the configured readme ref.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The image-rewrite patch only fixed relative <img src>; relative <a href>
links (e.g. [docs/x.md](docs/x.md)) were still resolved by the browser
against the about/summary page URL, not the repo root, so they 404d.
Rewrite relative <a href> to absolute cgit URLs the same way:
in-repo path -> /<repo>/tree/<path>?h=<branch>
../sibling -> resolved against the repo URL location (/<sibling>)
Fragments are preserved; anchors, absolute, scheme and query-only URLs
are left untouched.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Python-Markdown, unlike CommonMark/GitHub, refuses to start a list that
immediately follows a paragraph line without an intervening blank line, so a
very common README shape renders as one run-on paragraph:
Passing:
- foo
- bar
Add a preprocessor that inserts the blank line when a bullet (- * +) or a
1./1) ordered marker follows a paragraph line, restoring GitHub behavior.
Only '1' interrupts for ordered lists (matching CommonMark) so prose like
'... the year\n1985. was ...' is not turned into a list. Fenced/indented
code and lines already inside a list are left untouched.
|
| |
|
|
|
|
|
|
|
| |
A README's relative image paths (screenshots/foo.png) are repo blobs that
cgit only serves via its plain command, but a browser resolves a relative
<img src> against the about-page URL, so the image 404s. Rewrite relative
<img src> to an absolute /<repo>/plain/<path>?h=<branch> URL using the
CGIT_REPO_URL / CGIT_REPO_DEFBRANCH environment cgit gives the about-filter.
Absolute so it also works with ui-summary readme rendering.
|
| |
|
|
|
|
|
| |
This addressed a non-existent background image and made the element
invisible. Drop the style and use something sane.
Signed-off-by: Christian Hesse <mail@eworm.de>
|
| |
|
|
|
|
|
| |
This allows for cleaner nesting semantics and matches github more
closely.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
| |
With sha1 we had a guaranteed length of 40 hex chars. This changes now
that we have to support sha256 with 64 hex chars... Support both.
Signed-off-by: Christian Hesse <mail@eworm.de>
|
| |
|
|
|
|
|
| |
luaossl has no upstream anymore and doesn't support OpenSSL 1.1,
whereas luaossl is quite active.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
| |
This makes the markdown filter generate anchor links for headings.
Signed-off-by: Christian Hesse <mail@eworm.de>
Tested-by: jean-christophe manciot <actionmystique@gmail.com>
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
| |
There's no use in giving a silly example to folks who will just copy it,
so instead try to do something slightly better.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
| |
This is much better than having the user generate it themselves.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
| |
Though SHA1 is broken, HMAC-SHA1 is still fine. But let's not push our
luck; SHA256 is more sensible anyway.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
|
|
|
| |
Place file contents into a single block so that syntax highlighting can
be applied in the usual fashion. Place the alternating color bars
behind the file contents. Force the default syntax highlighting
background to transparent.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Reviewed-by: John Keeping <john@keeping.me.uk>
|
| |
|
|
| |
Signed-off-by: Ville Skyttä <ville.skytta@iki.fi>
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Otherwise we get the classic Python UTF-8 errors, and the text is all
out of order. While we're at it, switch to python3 so we only have to
support one set of oddball semantics.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Suggested-by: Daniel Campbell <dlcampbell@gmx.com>
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: Christian Hesse <mail@eworm.de>
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
| |
http://www.w3.org/International/questions/qa-escapes#use
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
This allows custom links to be used for repository owners by
configuring a filter to be applied in the "Owner" column in the
repository list.
|
| |
|
|
|
|
| |
Serving cgit via https and getting avatar via http gives error messages
about untrusted content. This decides whether or not to use https link
by looking at the environment variable HTTPS, which is set in CGI.
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
| |
This way we're sure to use virtual root, or any other strangeness
encountered.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
| |
By default, strings are compared by hash, so we can remove this comment.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
| |
This also gives us some CSRF protection. Note that we make use of the
hmac to protect the redirect value.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This leverages the new lua support. See
filters/simple-authentication.lua for explaination of how this works.
There is also additional documentation in cgitrc.5.txt.
Though this is a cookie-based approach, cgit's caching mechanism is
preserved for authenticated pages.
Very plugable and extendable depending on user needs.
The sample script uses an HMAC-SHA1 based cookie to store the
currently logged in user, with an expiration date.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
| |
an attribute value specification must be an attribute value literal
unless SHORTTAG YES is specified
|
| |
|
|
| |
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
|
| |
Filters can now indicate a status back to cgit by means of the exit code
for exec, or the return value from close for Lua.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
| |
|
|
|
|
| |
* make ampersand a html entity
* add required alt attribute
* add required img end tag
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Since the email filter is called from lots of places, the script might
benefit from knowing the origin. That way it can modify its contents
and/or size depending.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|