mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Use standard lessc and minify CSS using Node.js (#2337)
* Use standard lessc and minify CSS using Node.js This changes the previous nonstandard `lessc` to the official one and enables CSS minification via the clean-css module. To build CSS, Node.js is required along with a `npm install` to get the tools installed locally in node_modules so there is no dependency on binaries in PATH. Benefits include: - Allows one to have a standard lessc in PATH. - Can now use command line switches on lessc. - Minified CSS brings faster page load times and also has the benefit of discouraging contributors from editing CSS directly. To build CSS, Node.js is required along with a `npm install` to get the tools installed locally based on the information in `package.json`. The 'make stylesheet' task was modified to run without condition. This makes it easier to work on the make task itself without having to delete files. Also fixes: https://github.com/go-gitea/gitea/issues/2198 * install node, npm and modules on drone * .PHONY * use 'minify' to minify CSS
This commit is contained in:
		@@ -16,6 +16,8 @@ pipeline:
 | 
			
		||||
      TAGS: bindata sqlite
 | 
			
		||||
      GOPATH: /srv/app
 | 
			
		||||
    commands:
 | 
			
		||||
      - apk -U add nodejs nodejs-npm
 | 
			
		||||
      - npm install
 | 
			
		||||
      - make clean
 | 
			
		||||
      - make generate
 | 
			
		||||
      - make vet
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -58,3 +58,4 @@ coverage.all
 | 
			
		||||
/integrations/indexers-sqlite
 | 
			
		||||
/integrations/mysql.ini
 | 
			
		||||
/integrations/pgsql.ini
 | 
			
		||||
/node_modules
 | 
			
		||||
 
 | 
			
		||||
@@ -97,6 +97,16 @@ and is synced regularily to Crowdin. Once a translation has reached
 | 
			
		||||
A SATISFACTORY PERCENTAGE it will be synced back into this repo and
 | 
			
		||||
included in the next released version.
 | 
			
		||||
 | 
			
		||||
## Building Gitea
 | 
			
		||||
 | 
			
		||||
Generally, the go build tools are installed as-needed in the `Makefile`.
 | 
			
		||||
An exception are the tools to build the CSS and images.
 | 
			
		||||
 | 
			
		||||
- To build CSS: Install [Node.js](https://nodejs.org/en/download/package-manager)
 | 
			
		||||
  with `npm` and then run `npm install` and `make stylesheets`.
 | 
			
		||||
- To build Images: ImageMagick, inkscape and zopflipng binaries must be
 | 
			
		||||
  available in your `PATH` to run `make generate-images`.
 | 
			
		||||
 | 
			
		||||
## Code review
 | 
			
		||||
 | 
			
		||||
Changes to Gitea must be reviewed before they are accepted, no matter who
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								Makefile
									
									
									
									
									
								
							@@ -15,7 +15,6 @@ else
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
BINDATA := modules/{options,public,templates}/bindata.go
 | 
			
		||||
STYLESHEETS := $(wildcard public/less/index.less public/less/_*.less)
 | 
			
		||||
DOCKER_TAG := gitea/gitea:latest
 | 
			
		||||
GOFILES := $(shell find . -name "*.go" -type f ! -path "./vendor/*" ! -path "*/bindata.go")
 | 
			
		||||
GOFMT ?= gofmt -s
 | 
			
		||||
@@ -299,14 +298,12 @@ stylesheets-check: stylesheets
 | 
			
		||||
	fi;
 | 
			
		||||
 | 
			
		||||
.PHONY: stylesheets
 | 
			
		||||
stylesheets: public/css/index.css
 | 
			
		||||
 | 
			
		||||
.IGNORE: public/css/index.css
 | 
			
		||||
public/css/index.css: $(STYLESHEETS)
 | 
			
		||||
	@which lessc > /dev/null; if [ $$? -ne 0 ]; then \
 | 
			
		||||
		$(GO) get -u github.com/kib357/less-go/lessc; \
 | 
			
		||||
stylesheets:
 | 
			
		||||
	@hash minify > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
			
		||||
		$(GO) get -u github.com/tdewolff/minify/cmd/minify; \
 | 
			
		||||
	fi
 | 
			
		||||
	lessc -i $< -o $@
 | 
			
		||||
	node_modules/.bin/lessc --no-ie-compat public/less/index.less public/css/index.css
 | 
			
		||||
	minify -o public/css/index.css public/css/index.css
 | 
			
		||||
 | 
			
		||||
.PHONY: swagger-ui
 | 
			
		||||
swagger-ui:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "less": "^2.7.2"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3132
									
								
								public/css/index.css
									
									
									
									
									
								
							
							
						
						
									
										3132
									
								
								public/css/index.css
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user