aboutsummaryrefslogtreecommitdiffstats
path: root/filters (follow)
Commit message (Collapse)AuthorAgeFilesLines
* md2html: render linked .md via the about view, fix relative baseJason A. Dönerfield3 days2-26/+45
| | | | | | | | | | | | | | 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.
* md2html: rewrite relative README links to the tree/ blob URLJason A. Dönerfield3 days1-11/+60
| | | | | | | | | | | | 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.
* md2html: let bullet/1. lists interrupt paragraphs (GitHub-style)Jason A. Dönerfield3 days1-0/+55
| | | | | | | | | | | | | | | | 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.
* md2html: rewrite relative image links to the plain/ blob URLJason A. Dönerfield6 days1-3/+28
| | | | | | | | | 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.
* md2html: use proper formatting for hrChristian Hesse2021-05-121-5/+1
| | | | | | | 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>
* md2html: use sane_lists extensionJason A. Donenfeld2020-12-291-0/+1
| | | | | | | This allows for cleaner nesting semantics and matches github more closely. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* global: replace hard coded hash lengthChristian Hesse2020-10-201-1/+1
| | | | | | | 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>
* filters: migrate from luacrypto to luaosslJason A. Donenfeld2019-01-035-44/+83
| | | | | | | 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>
* filters: generate anchor links from markdownChristian Hesse2018-08-281-2/+15
| | | | | | | 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>
* auth-filters: add simple file-based authentication schemeJason A. Donenfeld2018-08-031-0/+352
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* auth-filters: use crypt() in simple-authenticationJason A. Donenfeld2018-07-151-13/+6
| | | | | | | 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>
* auth-filters: generate secret securelyJason A. Donenfeld2018-07-152-18/+85
| | | | | | This is much better than having the user generate it themselves. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* auth-filters: do not crash on nil usernameJason A. Donenfeld2018-07-141-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* auth-filters: do not use HMAC-SHA1Jason A. Donenfeld2018-07-142-4/+4
| | | | | | | 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>
* ui-blame: Allow syntax highlightingJeff Smith2018-01-191-1/+1
| | | | | | | | | | 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>
* global: spelling fixesVille Skyttä2017-10-151-1/+1
| | | | Signed-off-by: Ville Skyttä <ville.skytta@iki.fi>
* syntax-highlighting: replace invalid unicode with ?Jason A. Donenfeld2017-01-221-2/+2
|
* md2html: use utf-8 and flush output bufferJason A. Donenfeld2016-06-171-6/+11
| | | | | | | | | 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>
* Hosted on HTTPS nowJason A. Donenfeld2016-06-071-1/+1
|
* md2html: Do syntax highlighting tooJason A. Donenfeld2016-02-231-1/+5
|
* syntax-highlighting: always use utf-8 to avoid ascii codec issuesJason A. Donenfeld2016-01-181-0/+3
|
* about-formatting.sh: comment text out of dateJason A. Donenfeld2015-11-121-1/+1
|
* filters: port syntax-highlighting.py to python 3.xChristian Hesse2015-10-121-10/+9
| | | | Signed-off-by: Christian Hesse <mail@eworm.de>
* md2html: the default of stdin works fineJason A. Donenfeld2015-10-121-2/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* filters: misc cleanupsJason A. Donenfeld2015-10-122-2/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* md2html: use pure pythonJason A. Donenfeld2015-10-121-6/+9
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* filters: Simplify convertersJason A. Donenfeld2015-10-094-1734/+284
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* filters: apply HTML escapingLazaros Koromilas2015-08-121-1/+1
| | | | http://www.w3.org/International/questions/qa-escapes#use
* filters: Add sample gentoo scriptJason A. Donenfeld2015-03-131-0/+320
|
* simple-authentication.lua: tie secure cookies to field namesJason A. Donenfeld2015-03-051-13/+21
|
* match other common markdown file extensionsChris Burroughs2014-12-231-1/+1
|
* repolist: add owner-filterChris Burroughs2014-12-231-0/+17
| | | | | | 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.
* filter: fix libravatar email-filter https issueChristian Hesse2014-12-131-1/+2
| | | | | | 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.
* remove trailing whitespaces from source filesChristian Hesse2014-04-171-18/+18
|
* filter: add libravatar email-filter lua scriptChristian Hesse2014-03-131-0/+26
|
* simple-authentication: styleJason A. Donenfeld2014-01-231-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* auth: document tweakables in lua scriptJason A. Donenfeld2014-01-171-0/+10
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* auth: have cgit calculate login addressJason A. Donenfeld2014-01-161-6/+1
| | | | | | | This way we're sure to use virtual root, or any other strangeness encountered. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* auth: lua string comparisons are time invariantJason A. Donenfeld2014-01-161-2/+2
| | | | | | By default, strings are compared by hash, so we can remove this comment. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* authentication: use hidden form instead of refererJason A. Donenfeld2014-01-161-79/+121
| | | | | | | 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>
* auth: add basic authentication filter frameworkJason A. Donenfeld2014-01-161-0/+225
| | | | | | | | | | | | | | | | 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>
* email-gravatar: fix html syntax issuesChristian Hesse2014-01-152-2/+2
| | | | | an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified
* email-gravatar: do not scale icons upJason A. Donenfeld2014-01-142-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* filter: allow returning exit code from filterJason A. Donenfeld2014-01-141-0/+1
| | | | | | | 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>
* email-gravatar: fix html syntax issuesChristian Hesse2014-01-142-2/+2
| | | | | | * make ampersand a html entity * add required alt attribute * add required img end tag
* email-gravatar.py: fix UTF-8Christian Hesse2014-01-141-0/+4
|
* email-gravatar.lua: fix for lua 5.2Christian Hesse2014-01-141-1/+1
|
* filter: add page source to email filterJason A. Donenfeld2014-01-142-1/+3
| | | | | | | | 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>
* filter: add gravatar scriptsJason A. Donenfeld2014-01-142-0/+58
| | | | | | | The lua one is hugely faster than the python one, but both are included for comparison. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* filters: Improved syntax-highlighting.pyStefan Tatschner2014-01-131-19/+33
| | | | | | | | | | | | | | | | - Switched back to python2 according to a problem in pygments with python3. With the next release of pygments this problem should be fixed. Issue see here: https://bitbucket.org/birkenfeld/pygments-main/issue/901/problems-with-python3 - Just read the stdin, decode it to utf-8 and ignore unknown signs. This ensures that even destroyed files do not cause any errors in the filter. - Improved language guessing: -> At first use guess_lexer_for_filename for a better detection of the used programming languages (even mixed cases will be detected, e.g. php + html). -> If nothing was found look if there is a shebang and use guess_lexer. -> As default/fallback choose TextLexer. Signed-off-by: Stefan Tatschner <stefan@sevenbyte.org>