diff --git a/.github/workflows/component-linting.yml b/.github/workflows/component-linting.yml deleted file mode 100644 index 2385132..0000000 --- a/.github/workflows/component-linting.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Linting - -on: - push: - branches: - - main - pull_request: - -concurrency: - group: plugin-linting-${{ format('{0}-{1}', github.head_ref || github.run_number, github.job) }} - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: 16 - cache: yarn - - - name: Yarn install - run: yarn install - - - name: ESLint - if: ${{ always() }} - run: yarn eslint --ext .js,.js.es6 --no-error-on-unmatched-pattern {test,javascripts} - - - name: Prettier - if: ${{ always() }} - shell: bash - run: | - yarn prettier -v - files=$(find javascripts desktop mobile common scss -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" \) 2> /dev/null) || true - if [ -n "$files" ]; then - yarn prettier --list-different $files - fi - if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then - yarn prettier --list-different "test/**/*.{js,es6}" - fi - - - name: Ember template lint - if: ${{ always() }} - run: yarn ember-template-lint --no-error-on-unmatched-pattern javascripts diff --git a/.github/workflows/component-tests.yml b/.github/workflows/component-tests.yml deleted file mode 100644 index 944aa1e..0000000 --- a/.github/workflows/component-tests.yml +++ /dev/null @@ -1,147 +0,0 @@ -name: Tests - -on: - push: - branches: - - main - pull_request: - -concurrency: - group: plugin-tests-${{ format('{0}-{1}', github.head_ref || github.run_number, github.job) }} - cancel-in-progress: true - -jobs: - check: - runs-on: ubuntu-latest - outputs: - tests_exist: ${{ steps.check_tests.outputs.tests_exist }} - - steps: - - name: Install component - uses: actions/checkout@v3 - with: - path: tmp/component - fetch-depth: 1 - - - name: Check QUnit existence - id: check_tests - shell: bash - run: | - if [ 0 -lt $(find tmp/component/test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then - echo "::set-output name=tests_exist::true" - fi - - test: - needs: check - if: ${{ needs.check.outputs.tests_exist }} - runs-on: ubuntu-latest - container: discourse/discourse_test:slim-browsers - timeout-minutes: 15 - - env: - DISCOURSE_HOSTNAME: www.example.com - RUBY_GLOBAL_METHOD_CACHE_SIZE: 131072 - RAILS_ENV: development - PGUSER: discourse - PGPASSWORD: discourse - - steps: - - uses: actions/checkout@v3 - with: - repository: discourse/discourse - fetch-depth: 1 - - - name: Install component - uses: actions/checkout@v3 - with: - path: tmp/component - fetch-depth: 1 - - - name: Setup Git - run: | - git config --global user.email "ci@ci.invalid" - git config --global user.name "Discourse CI" - - - name: Start redis - run: | - redis-server /etc/redis/redis.conf & - - - name: Start Postgres - run: | - chown -R postgres /var/run/postgresql - sudo -E -u postgres script/start_test_db.rb - sudo -u postgres psql -c "CREATE ROLE $PGUSER LOGIN SUPERUSER PASSWORD '$PGPASSWORD';" - - - name: Bundler cache - uses: actions/cache@v3 - with: - path: vendor/bundle - key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-gem- - - - name: Setup gems - run: | - gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock) - bundle config --local path vendor/bundle - bundle config --local deployment true - bundle config --local without development - bundle install --jobs 4 - bundle clean - - - name: Lint English locale - run: bundle exec ruby script/i18n_lint.rb "tmp/component/locales/en.yml" - - - name: Get yarn cache directory - id: yarn-cache-dir - run: echo "::set-output name=dir::$(yarn cache dir)" - - - name: Yarn cache - uses: actions/cache@v3 - id: yarn-cache - with: - path: ${{ steps.yarn-cache-dir.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Yarn install - run: yarn install - - - name: Fetch app state cache - uses: actions/cache@v3 - id: app-cache - with: - path: tmp/app-cache - key: >- - ${{ hashFiles('.github/workflows/tests.yml') }}- - ${{ hashFiles('db/**/*', 'plugins/**/db/**/*') }}- - - - name: Restore database from cache - if: steps.app-cache.outputs.cache-hit == 'true' - run: psql -f tmp/app-cache/cache.sql postgres - - - name: Restore uploads from cache - if: steps.app-cache.outputs.cache-hit == 'true' - run: rm -rf public/uploads && cp -r tmp/app-cache/uploads public/uploads - - - name: Create and migrate database - if: steps.app-cache.outputs.cache-hit != 'true' - run: | - bin/rake db:create - bin/rake db:migrate - - - name: Dump database for cache - if: steps.app-cache.outputs.cache-hit != 'true' - run: mkdir -p tmp/app-cache && pg_dumpall > tmp/app-cache/cache.sql - - - name: Dump uploads for cache - if: steps.app-cache.outputs.cache-hit != 'true' - run: rm -rf tmp/app-cache/uploads && cp -r public/uploads tmp/app-cache/uploads - - - name: Component QUnit - run: | - THEME_NAME=$(ruby -e 'require "json"; puts JSON.parse(File.read("tmp/component/about.json"))["name"]') - bundle exec rake themes:install -- "--{\"$THEME_NAME\": \"tmp/component\"}" - UNICORN_TIMEOUT=120 bundle exec rake "themes:qunit[name,$THEME_NAME]" - timeout-minutes: 10 diff --git a/.github/workflows/discourse-theme.yml b/.github/workflows/discourse-theme.yml new file mode 100644 index 0000000..8adaaec --- /dev/null +++ b/.github/workflows/discourse-theme.yml @@ -0,0 +1,11 @@ +name: Discourse Theme + +on: + push: + branches: + - main + pull_request: + +jobs: + ci: + uses: discourse/.github/.github/workflows/discourse-theme.yml@v1 diff --git a/common/common.scss b/common/common.scss index cd8e6d6..28dbd75 100644 --- a/common/common.scss +++ b/common/common.scss @@ -47,3 +47,35 @@ } } } + +// category banner integration + +.tag-banner__text-only { + display: flex; + align-items: center; + justify-content: center; + font-size: var(--font-down-4); + font-weight: normal; + + .d-icon { + font-size: var(--font-down-3); + margin-right: 0.33em; + } + + .discourse-tag, + .discourse-tag.bullet, + .discourse-tag.box, + .discourse-tag.simple { + margin: 0; + color: currentColor; + &:before { + background: currentColor; + } + } + + .discourse-tag.box { + background: transparent; + font-size: var(--font-down-1); + box-shadow: 0 0 0 1px currentColor; + } +} diff --git a/javascripts/discourse/components/discourse-tag-banners-presentation.hbs b/javascripts/discourse/components/discourse-tag-banners-presentation.hbs new file mode 100644 index 0000000..ba281b4 --- /dev/null +++ b/javascripts/discourse/components/discourse-tag-banners-presentation.hbs @@ -0,0 +1,23 @@ +
{{@tag.description}}
+ {{/if}} + {{/unless}} +