[web-client] integrate the migrated theme in the development workflows
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
1a3543d4b2
commit
2bf77f5d2d
1
Makefile
1
Makefile
@ -85,7 +85,6 @@ MANAGE += pyenv pyenv.install pyenv.uninstall
|
|||||||
MANAGE += format.python
|
MANAGE += format.python
|
||||||
MANAGE += test.yamllint test.pylint test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean test.themes test.types.dev test.types.ci
|
MANAGE += test.yamllint test.pylint test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean test.themes test.types.dev test.types.ci
|
||||||
MANAGE += themes.all themes.fix themes.test
|
MANAGE += themes.all themes.fix themes.test
|
||||||
MANAGE += themes.simple themes.simple.pygments themes.simple.fix
|
|
||||||
MANAGE += static.build.commit static.build.drop static.build.restore
|
MANAGE += static.build.commit static.build.drop static.build.restore
|
||||||
MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs
|
MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs
|
||||||
|
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "vite build",
|
"clean": "rm -Rf node_modules",
|
||||||
|
"build": "node theme_icons.js && vite build",
|
||||||
"fix": "eslint --fix && stylelint --fix strict 'src/**/*.{css,scss,sass,less,styl,vue,svelte}'",
|
"fix": "eslint --fix && stylelint --fix strict 'src/**/*.{css,scss,sass,less,styl,vue,svelte}'",
|
||||||
"icons.html": "node theme_icons.js"
|
"icons.html": "node theme_icons.js"
|
||||||
},
|
},
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
``center_alignment`` : default ``false``
|
``center_alignment`` : default ``false``
|
||||||
When enabled, the results are centered instead of being in the left (or RTL)
|
When enabled, the results are centered instead of being in the left (or RTL)
|
||||||
side of the screen. This setting only affects the *desktop layout*
|
side of the screen. This setting only affects the *desktop layout*
|
||||||
(:origin:`min-width: @tablet <searx/static/themes/simple/src/less/definitions.less>`)
|
(:origin:`min-width: @tablet <client/simple/src/less/definitions.less>`)
|
||||||
|
|
||||||
.. cache_url:
|
.. cache_url:
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ html_sidebars = {
|
|||||||
],
|
],
|
||||||
}
|
}
|
||||||
singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]}
|
singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]}
|
||||||
html_logo = "../src/brand/searxng-wordmark.svg"
|
html_logo = "../client/simple/src/brand/searxng-wordmark.svg"
|
||||||
html_title = "SearXNG Documentation ({})".format(VERSION_STRING)
|
html_title = "SearXNG Documentation ({})".format(VERSION_STRING)
|
||||||
html_show_sourcelink = True
|
html_show_sourcelink = True
|
||||||
|
|
||||||
|
@ -180,6 +180,9 @@ sources of the theme need to be rebuild. You can do that by running::
|
|||||||
|
|
||||||
$ make themes.all
|
$ make themes.all
|
||||||
|
|
||||||
|
..
|
||||||
|
ToDo: vite server is not implemented yet / will be done in a follow up PR
|
||||||
|
|
||||||
Alternatively to ``themes.all`` you can run *live builds* of the theme you are
|
Alternatively to ``themes.all`` you can run *live builds* of the theme you are
|
||||||
modify (:ref:`make themes`)::
|
modify (:ref:`make themes`)::
|
||||||
|
|
||||||
|
12
manage
12
manage
@ -314,6 +314,18 @@ format.python() {
|
|||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
docs.prebuild() {
|
||||||
|
build_msg DOCS "build ${DOCS_BUILD}/includes"
|
||||||
|
(
|
||||||
|
set -e
|
||||||
|
[ "$VERBOSE" = "1" ] && set -x
|
||||||
|
mkdir -p "${DOCS_BUILD}/includes"
|
||||||
|
./utils/searxng.sh searxng.doc.rst > "${DOCS_BUILD}/includes/searxng.rst"
|
||||||
|
pyenv.cmd searxng_extra/docs_prebuild
|
||||||
|
)
|
||||||
|
dump_return $?
|
||||||
|
}
|
||||||
|
|
||||||
# shellcheck disable=SC2119
|
# shellcheck disable=SC2119
|
||||||
main() {
|
main() {
|
||||||
|
|
||||||
|
@ -59,15 +59,3 @@ data.locales() {
|
|||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
docs.prebuild() {
|
|
||||||
build_msg DOCS "build ${DOCS_BUILD}/includes"
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
[ "$VERBOSE" = "1" ] && set -x
|
|
||||||
mkdir -p "${DOCS_BUILD}/includes"
|
|
||||||
./utils/searxng.sh searxng.doc.rst > "${DOCS_BUILD}/includes/searxng.rst"
|
|
||||||
pyenv.cmd searxng_extra/docs_prebuild
|
|
||||||
)
|
|
||||||
dump_return $?
|
|
||||||
}
|
|
||||||
|
@ -25,8 +25,8 @@ nodejs.ensure() {
|
|||||||
node.env() {
|
node.env() {
|
||||||
nodejs.ensure
|
nodejs.ensure
|
||||||
( set -e
|
( set -e
|
||||||
build_msg INSTALL "[npm] ./searx/static/themes/simple/package.json"
|
build_msg INSTALL "[npm] ./client/simple/package.json"
|
||||||
npm --prefix searx/static/themes/simple install
|
npm --prefix client/simple install
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
@ -44,7 +44,7 @@ node.clean() {
|
|||||||
fi
|
fi
|
||||||
build_msg CLEAN "themes -- locally installed npm dependencies"
|
build_msg CLEAN "themes -- locally installed npm dependencies"
|
||||||
( set -e
|
( set -e
|
||||||
npm --prefix searx/static/themes/simple run clean \
|
npm --prefix client/simple run clean \
|
||||||
| prefix_stdout "${_Blue}CLEAN ${_creset} "
|
| prefix_stdout "${_Blue}CLEAN ${_creset} "
|
||||||
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
|
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
|
||||||
return 1
|
return 1
|
||||||
|
@ -4,12 +4,7 @@
|
|||||||
|
|
||||||
STATIC_BUILD_COMMIT="[build] /static"
|
STATIC_BUILD_COMMIT="[build] /static"
|
||||||
STATIC_BUILT_PATHS=(
|
STATIC_BUILT_PATHS=(
|
||||||
'searx/static/themes/simple/css'
|
'searx/static/themes/simple'
|
||||||
'searx/static/themes/simple/js'
|
|
||||||
'searx/static/themes/simple/src/generated/pygments.less'
|
|
||||||
'searx/static/themes/simple/img'
|
|
||||||
'searx/templates/simple/searxng-wordmark.min.svg'
|
|
||||||
'searx/templates/simple/icons.html'
|
|
||||||
)
|
)
|
||||||
|
|
||||||
static.help(){
|
static.help(){
|
||||||
|
@ -1,100 +1,36 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
declare _Blue
|
|
||||||
declare _creset
|
|
||||||
|
|
||||||
themes.help(){
|
themes.help(){
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
themes.:
|
themes.:
|
||||||
all : test & build all themes
|
all : test & build all themes
|
||||||
test : test all themes
|
test : test all themes
|
||||||
fix : fix JS & CSS (LESS)
|
fix : fix JS & CSS (LESS)
|
||||||
live : to get live builds of CSS & JS use: LIVE_THEME=simple make run
|
|
||||||
simple.: test & build simple theme ..
|
|
||||||
pygments: build pygment's LESS files for simple theme
|
|
||||||
test : test simple theme
|
|
||||||
fix : fix JS & CSS (LESS) of the simple theme
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
themes.all() {
|
themes.all() {
|
||||||
( set -e
|
( set -e
|
||||||
node.env
|
build_msg SIMPLE "theme: run build"
|
||||||
themes.simple
|
vite.simple.build
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
themes.fix() {
|
themes.fix() {
|
||||||
( set -e
|
( set -e
|
||||||
node.env
|
build_msg SIMPLE "theme: fix"
|
||||||
themes.simple.fix
|
vite.simple.fix
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
themes.test() {
|
themes.test() {
|
||||||
( set -e
|
( set -e
|
||||||
node.env
|
# we run a build to test (in CI)
|
||||||
themes.simple.test
|
build_msg SIMPLE "theme: run build (to test)"
|
||||||
|
vite.simple.build
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
themes.live() {
|
|
||||||
local LIVE_THEME="${LIVE_THEME:-${1}}"
|
|
||||||
case "${LIVE_THEME}" in
|
|
||||||
simple)
|
|
||||||
theme="searx/static/themes/${LIVE_THEME}"
|
|
||||||
;;
|
|
||||||
'')
|
|
||||||
die 42 "missing theme argument"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
die 42 "unknown theme '${LIVE_THEME}' // [simple]'"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
build_msg SIMPLE "theme: $1 (live build)"
|
|
||||||
node.env
|
|
||||||
themes.simple.pygments
|
|
||||||
cd "${theme}"
|
|
||||||
{
|
|
||||||
npm run watch
|
|
||||||
} # 2>&1 \
|
|
||||||
# | prefix_stdout "${_Blue}THEME ${1} ${_creset} " \
|
|
||||||
# | grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |'
|
|
||||||
}
|
|
||||||
|
|
||||||
themes.simple() {
|
|
||||||
( set -e
|
|
||||||
themes.simple.pygments
|
|
||||||
build_msg SIMPLE "theme: run build"
|
|
||||||
# "run build" includes tests from eslint and stylelint
|
|
||||||
npm --prefix searx/static/themes/simple run build
|
|
||||||
)
|
|
||||||
dump_return $?
|
|
||||||
}
|
|
||||||
|
|
||||||
themes.simple.pygments() {
|
|
||||||
build_msg PYGMENTS "searxng_extra/update/update_pygments.py"
|
|
||||||
pyenv.cmd python searxng_extra/update/update_pygments.py \
|
|
||||||
| prefix_stdout "${_Blue}PYGMENTS ${_creset} "
|
|
||||||
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
|
|
||||||
build_msg PYGMENTS "building LESS files for pygments failed"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
themes.simple.fix() {
|
|
||||||
build_msg SIMPLE "theme: fix"
|
|
||||||
npm --prefix searx/static/themes/simple run fix
|
|
||||||
dump_return $?
|
|
||||||
}
|
|
||||||
|
|
||||||
themes.simple.test() {
|
|
||||||
build_msg SIMPLE "theme: run test"
|
|
||||||
npm --prefix searx/static/themes/simple run test
|
|
||||||
dump_return $?
|
|
||||||
}
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
declare _Blue
|
||||||
|
declare _creset
|
||||||
|
|
||||||
vite.help(){
|
vite.help(){
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
@ -12,25 +14,24 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
VITE_SIMPLE_THEME="${REPO_ROOT}/client/simple"
|
VITE_SIMPLE_THEME="${REPO_ROOT}/client/simple"
|
||||||
VITE_SIMPLE_DIST="${REPO_ROOT}/searx/static/themes/simple"
|
|
||||||
|
|
||||||
vite.simple.dev() {
|
# ToDo: vite server is not implemented yet / will be done in a follow up PR
|
||||||
|
#
|
||||||
( set -e
|
# vite.simple.dev() {
|
||||||
build_msg SIMPLE "start server for FE development of: ${VITE_SIMPLE_THEME}"
|
# ( set -e
|
||||||
pushd "${VITE_SIMPLE_THEME}"
|
# build_msg SIMPLE "start server for FE development of: ${VITE_SIMPLE_THEME}"
|
||||||
npm install
|
# pushd "${VITE_SIMPLE_THEME}"
|
||||||
npm exec -- vite
|
# npm install
|
||||||
popd &> /dev/null
|
# npm exec -- vite
|
||||||
)
|
# popd &> /dev/null
|
||||||
|
# )
|
||||||
}
|
# }
|
||||||
|
|
||||||
vite.simple.build() {
|
vite.simple.build() {
|
||||||
|
|
||||||
# build static files of the simple theme
|
|
||||||
|
|
||||||
( set -e
|
( set -e
|
||||||
|
templates.simple.pygments
|
||||||
|
|
||||||
|
node.env
|
||||||
build_msg SIMPLE "run build of theme from: ${VITE_SIMPLE_THEME}"
|
build_msg SIMPLE "run build of theme from: ${VITE_SIMPLE_THEME}"
|
||||||
|
|
||||||
pushd "${VITE_SIMPLE_THEME}"
|
pushd "${VITE_SIMPLE_THEME}"
|
||||||
@ -38,6 +39,24 @@ vite.simple.build() {
|
|||||||
npm run fix
|
npm run fix
|
||||||
npm run icons.html
|
npm run icons.html
|
||||||
npm run build
|
npm run build
|
||||||
|
popd &> /dev/null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vite.simple.fix() {
|
||||||
|
( set -e
|
||||||
|
node.env
|
||||||
|
npm --prefix client/simple run fix
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
templates.simple.pygments() {
|
||||||
|
build_msg PYGMENTS "searxng_extra/update/update_pygments.py"
|
||||||
|
pyenv.cmd python searxng_extra/update/update_pygments.py \
|
||||||
|
| prefix_stdout "${_Blue}PYGMENTS ${_creset} "
|
||||||
|
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
|
||||||
|
build_msg PYGMENTS "building LESS files for pygments failed"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user