Compare commits

..
12 Commits
Author SHA1 Message Date
koloml ec41ba5030 Furbooru: Added screenshots for tag groups feature 2025-11-04 19:26:47 -05:00
koloml 55624285e1 Merge pull request #138 from koloml/feature/release-build-pipeline
Added GitHub action for building the project in CI
2025-10-02 13:41:29 +04:00
koloml b97255ccd6 Release CI action
Builds the extension for both sites and uploads them as artifacts. This
will make it possible to just release the project and then grab the
ready-to-be-deployed archive for publishing.

This change was made using Cursor. Just a small test run to check how
useful it is for my workflows.
2025-10-02 13:40:02 +04:00
koloml ef76560bfb Merge pull request #136 from koloml/release/0.5.2
Release: 0.5.2
2025-09-27 22:24:38 +04:00
koloml faa909a0db Properly rearranging non-dev dependencies 2025-09-27 22:22:40 +04:00
koloml 3955e3191e Bumped version to 0.5.2 2025-09-27 22:15:38 +04:00
koloml 17dab5854c Merge pull request #137 from koloml/feature/reduce-gap-in-tag-category-titles
Furbooru: Applying styling changes previously used only for Derpibooru
2025-09-24 13:13:22 +04:00
koloml a20632e58e Furbooru: Updated tags appearance in media box popups 2025-09-22 22:50:48 +04:00
koloml 5f4a1a6c00 Furbooru: Use margin for tag category titles used for Derpibooru 2025-09-22 22:49:33 +04:00
koloml 48fc58f042 Merge pull request #135 from koloml/feature/updated-tag-dropdown
Making dropdown link icon active for both boorus
2025-09-22 05:09:45 +04:00
koloml 8356956b2e Making dropdown link icon active for both boorus
Furbooru was updated to the latest version of Philomena a few days ago.
Now it uses icons in tag dropdown just like on Derpibooru.
2025-09-22 05:05:52 +04:00
koloml 3833cada1e Bumping dependencies (#134)
* Updated `vite` from 6.3.5 to 7.1.2

* Updated `@sveltejs/kit` and `@sveltejs/vite-plugin-svelte`

These are updated together, since they're interconnected with Vite

* Updated `svelte` from 5.33.14 to 5.38.1

* Updated `@sveltejs/adapter-static` from 3.0.8 to 3.0.9

* Updated `vitest` and `@vitest/coverage-v8` from 3.2.0 to 3.2.4

* Updated `svelte-check` from 4.2.1 to 4.3.1

* Updated `typescript` from 5.8.3 to 5.9.2

* Updated `sass` from 1.89.1 to 1.90.0

* Updated `@types/node` from 22.15.29 to 22.17.2

* Updated `cheerio` from 1.0.0 to 1.1.2

* Updated `@sveltejs/kit` from 2.31.1 to 2.42.2

* Updated `vite` from 7.1.2 to 7.1.6

* Updated `@sveltejs/vite-plugin-svelte` from 6.1.2 to 6.2.0

* Updated `svelte` from 5.38.1 to 5.39.4

* Updated `sass` from 1.90.0 to 1.93.0

* Updated `@types/node` from 22.17.2 to 22.18.6

* Updated `jsdom` from 26.1.0 to 27.0.0
2025-09-21 20:49:49 -04:00
10 changed files with 644 additions and 535 deletions

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

+63
View File
@@ -0,0 +1,63 @@
name: Build Extensions
on:
push:
branches: [ master ]
jobs:
build-extensions:
runs-on: ubuntu-latest
strategy:
matrix:
site: [furbooru, derpibooru]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build extension for ${{ matrix.site }}
run: |
if [ "${{ matrix.site }}" = "derpibooru" ]; then
npm run build:derpibooru
else
npm run build
fi
- name: Create extension zip
run: |
cd build
zip -r "../${{ matrix.site }}-tagging-assistant-extension.zip" .
- name: Upload extension artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.site }}-tagging-assistant-extension
path: ${{ matrix.site }}-tagging-assistant-extension.zip
retention-days: 30
create-release-artifacts:
runs-on: ubuntu-latest
needs: build-extensions
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Create combined artifact
uses: actions/upload-artifact@v4
with:
name: all-extensions
path: artifacts/
retention-days: 90
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Furbooru Tagging Assistant",
"description": "Small experimental extension for slightly quicker tagging experience. Furbooru Edition.",
"version": "0.5.1",
"version": "0.5.2",
"browser_specific_settings": {
"gecko": {
"id": "furbooru-tagging-assistant@thecore.city"
+554 -485
View File
File diff suppressed because it is too large. Load diff
+15 -15
View File
@@ -1,6 +1,6 @@
{
"name": "furbooru-tagging-assistant",
"version": "0.5.1",
"version": "0.5.2",
"private": true,
"scripts": {
"build": "npm run build:popup && npm run build:extension",
@@ -13,26 +13,26 @@
"test:watch": "vitest watch --coverage"
},
"devDependencies": {
"@sveltejs/adapter-static": "^3.0.8",
"@sveltejs/kit": "^2.21.1",
"@sveltejs/vite-plugin-svelte": "^5.0.3",
"@sveltejs/vite-plugin-svelte": "^6.2.0",
"@types/chrome": "^0.0.326",
"@types/node": "^22.15.29",
"@vitest/coverage-v8": "^3.2.0",
"cheerio": "^1.0.0",
"@types/node": "^22.18.6",
"@vitest/coverage-v8": "^3.2.4",
"cheerio": "^1.1.2",
"cross-env": "^10.0.0",
"jsdom": "^26.1.0",
"sass": "^1.89.1",
"svelte": "^5.33.14",
"svelte-check": "^4.2.1",
"typescript": "^5.8.3",
"vite": "^6.3.5",
"vitest": "^3.2.0"
"jsdom": "^27.0.0",
"svelte-check": "^4.3.1",
"typescript": "^5.9.2",
"vite": "^7.1.6",
"vitest": "^3.2.4"
},
"type": "module",
"dependencies": {
"@sveltejs/adapter-static": "^3.0.9",
"@sveltejs/kit": "^2.42.2",
"@fortawesome/fontawesome-free": "^6.7.2",
"amd-lite": "^1.0.1",
"lz-string": "^1.5.0"
"lz-string": "^1.5.0",
"sass": "^1.93.0",
"svelte": "^5.39.4"
}
}
+6 -12
View File
@@ -148,11 +148,10 @@ export class TagDropdownWrapper extends BaseComponent {
profileSpecificButtonText = `Remove from profile "${profileName}"`;
}
// Derpibooru has icons in dropdown. Make sure to only edit text and keep the icon untouched. Also, add the space
// before the text to make space between text and icon.
if (__CURRENT_SITE__ === 'derpibooru' && this.#toggleOnExistingButton.lastChild instanceof Text) {
if (this.#toggleOnExistingButton.lastChild instanceof Text) {
this.#toggleOnExistingButton.lastChild.textContent = ` ${profileSpecificButtonText}`;
} else {
// Just in case last child is missing, then update the text on the full element.
this.#toggleOnExistingButton.textContent = profileSpecificButtonText;
}
@@ -251,16 +250,11 @@ export class TagDropdownWrapper extends BaseComponent {
dropdownLink.href = '#';
dropdownLink.className = 'tag__dropdown__link';
// Derpibooru has an icon in dropdown item. Create the icon and place the text with additional space in front of it.
if (__CURRENT_SITE__ === 'derpibooru') {
const dropdownLinkIcon = document.createElement('i');
dropdownLinkIcon.classList.add('fa', 'fa-tags');
const dropdownLinkIcon = document.createElement('i');
dropdownLinkIcon.classList.add('fa', 'fa-tags');
dropdownLink.textContent = ` ${text}`;
dropdownLink.insertAdjacentElement('afterbegin', dropdownLinkIcon);
} else {
dropdownLink.textContent = text;
}
dropdownLink.textContent = ` ${text}`;
dropdownLink.insertAdjacentElement('afterbegin', dropdownLinkIcon);
dropdownLink.addEventListener('click', event => {
event.preventDefault();
+2 -9
View File
@@ -68,15 +68,8 @@
.tag {
cursor: pointer;
user-select: none;
// Derpibooru has slight differences in how tags are displayed.
@if environment.$current-site == 'derpibooru' {
padding: 0 5px;
gap: 0;
}
@else {
padding: 5px;
}
padding: 0 5px;
gap: 0;
&:hover {
background: booru-vars.$resolved-tag-color;
+3 -13
View File
@@ -6,18 +6,8 @@ h2.tag-category-headline {
$base-margin-top: .83em;
$base-margin-bottom: .62em;
// Tag List element was updated to use flex & gaps. This should be applied to Furbooru later, once updates will be
// applied from the base Philomena version.
@if environment.$current-site == 'derpibooru' {
margin: {
top: calc(#{$base-margin-top} - #{booru-vars.$padding-small});
bottom: calc(#{$base-margin-bottom} - #{booru-vars.$padding-small});
}
}
@else {
margin: {
top: $base-margin-top;
bottom: $base-margin-bottom;
}
margin: {
top: calc(#{$base-margin-top} - #{booru-vars.$padding-small});
bottom: calc(#{$base-margin-bottom} - #{booru-vars.$padding-small});
}
}