mirror of
https://hk.gh-proxy.com/https://github.com/NodeBB/nodebb-plugin-emoji.git
synced 2025-10-04 01:20:58 +08:00
feat: css-builders to use assetBaseUrl
This commit is contained in:
parent
e0befdeb1e
commit
18161e346a
5 changed files with 22 additions and 14 deletions
11
lib/base-url.ts
Normal file
11
lib/base-url.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
const nconf = require.main.require('nconf');
|
||||
|
||||
const apiControllers = require.main.require('./src/controllers/api');
|
||||
|
||||
export async function getBaseUrl(): Promise<string> {
|
||||
const { assetBaseUrl } = await apiControllers.loadConfig({ uid: 0, query: { } });
|
||||
|
||||
return assetBaseUrl.startsWith('http') ?
|
||||
assetBaseUrl :
|
||||
nconf.get('base_url') + assetBaseUrl;
|
||||
}
|
|
@ -9,6 +9,7 @@ import {
|
|||
import { uniq } from 'lodash';
|
||||
|
||||
import * as cssBuilders from './css-builders';
|
||||
import { getBaseUrl } from './base-url';
|
||||
import { clearCache } from './parse';
|
||||
import { getAll as getCustomizations } from './customizations';
|
||||
|
||||
|
@ -158,6 +159,7 @@ export default async function build(): Promise<void> {
|
|||
});
|
||||
|
||||
// generate CSS styles
|
||||
cssBuilders.setBaseUrl(await getBaseUrl());
|
||||
const css = packs.map(pack => cssBuilders[pack.mode](pack)).join('\n');
|
||||
const cssFile = `${css}\n.emoji-customizations {
|
||||
display: inline-block;
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
import { basename } from 'path';
|
||||
|
||||
const buster = require.main.require('./src/meta').config['cache-buster'];
|
||||
const nconf = require.main.require('nconf');
|
||||
const url = nconf.get('url');
|
||||
let baseUrl = '';
|
||||
|
||||
export function setBaseUrl(url:string):void {
|
||||
baseUrl = url;
|
||||
}
|
||||
|
||||
export function images(pack: EmojiDefinition): string {
|
||||
return `.emoji-${pack.id} {` +
|
||||
|
@ -18,7 +21,7 @@ export function sprite(pack: EmojiDefinition): string {
|
|||
`background-position: ${pack.dictionary[name].backgroundPosition};` +
|
||||
'}');
|
||||
|
||||
const route = `${url}/plugins/nodebb-plugin-emoji/emoji/${pack.id}`;
|
||||
const route = `${baseUrl}/plugins/nodebb-plugin-emoji/emoji/${pack.id}`;
|
||||
return `.emoji-${pack.id} {
|
||||
background-image: url(${route}/${basename(pack.sprite.file)}?${buster});
|
||||
background-size: ${pack.sprite.backgroundSize};
|
||||
|
@ -48,7 +51,7 @@ export function sprite(pack: EmojiDefinition): string {
|
|||
}
|
||||
|
||||
export function font(pack: EmojiDefinition): string {
|
||||
const route = `${url}/plugins/nodebb-plugin-emoji/emoji/${pack.id}`;
|
||||
const route = `${baseUrl}/plugins/nodebb-plugin-emoji/emoji/${pack.id}`;
|
||||
|
||||
return `@font-face {
|
||||
font-family: '${pack.font.family}';
|
||||
|
|
11
lib/index.ts
11
lib/index.ts
|
@ -5,18 +5,10 @@ import * as parse from './parse';
|
|||
import { tableFile } from './build';
|
||||
import { build } from './pubsub';
|
||||
import controllers from './controllers';
|
||||
import { getBaseUrl } from './base-url';
|
||||
|
||||
const nconf = require.main.require('nconf');
|
||||
const buster = require.main.require('./src/meta').config['cache-buster'];
|
||||
const apiControllers = require.main.require('./src/controllers/api');
|
||||
|
||||
async function getBaseUrl(): Promise<string> {
|
||||
const { assetBaseUrl } = await apiControllers.loadConfig({ uid: 0, query: { } });
|
||||
|
||||
return assetBaseUrl.startsWith('http') ?
|
||||
assetBaseUrl :
|
||||
nconf.get('base_url') + assetBaseUrl;
|
||||
}
|
||||
|
||||
export async function init(params: any): Promise<void> {
|
||||
controllers(params);
|
||||
|
@ -27,7 +19,6 @@ export async function init(params: any): Promise<void> {
|
|||
parseNative: boolean;
|
||||
};
|
||||
|
||||
// get assetBaseUrl from core config
|
||||
const baseUrl = await getBaseUrl();
|
||||
|
||||
// initialize parser flags
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue