summaryrefslogtreecommitdiff
path: root/webpack/module
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-02-05 03:59:29 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-02-05 03:59:29 +0900
commitdbd3cdb308d2edf600b20a8b632045c6163ae326 (patch)
treede3630065fcddeb1916668ef3b0b43a219340e2e /webpack/module
parentFix (diff)
parentMerge pull request #1097 from syuilo/refactor (diff)
downloadmisskey-dbd3cdb308d2edf600b20a8b632045c6163ae326.tar.gz
misskey-dbd3cdb308d2edf600b20a8b632045c6163ae326.tar.bz2
misskey-dbd3cdb308d2edf600b20a8b632045c6163ae326.zip
Merge remote-tracking branch 'refs/remotes/origin/master' into vue-#972
Diffstat (limited to 'webpack/module')
-rw-r--r--webpack/module/index.ts4
-rw-r--r--webpack/module/rules/fa.ts47
-rw-r--r--webpack/module/rules/i18n.ts33
-rw-r--r--webpack/module/rules/index.ts6
-rw-r--r--webpack/module/rules/license.ts17
5 files changed, 29 insertions, 78 deletions
diff --git a/webpack/module/index.ts b/webpack/module/index.ts
index 15f36557ce..088aca7238 100644
--- a/webpack/module/index.ts
+++ b/webpack/module/index.ts
@@ -1,5 +1,5 @@
import rules from './rules';
-export default (lang, locale) => ({
- rules: rules(lang, locale)
+export default lang => ({
+ rules: rules(lang)
});
diff --git a/webpack/module/rules/fa.ts b/webpack/module/rules/fa.ts
index 47c72a28a1..891b78ece2 100644
--- a/webpack/module/rules/fa.ts
+++ b/webpack/module/rules/fa.ts
@@ -3,16 +3,7 @@
*/
const StringReplacePlugin = require('string-replace-webpack-plugin');
-
-import * as fontawesome from '@fortawesome/fontawesome';
-import * as regular from '@fortawesome/fontawesome-free-regular';
-import * as solid from '@fortawesome/fontawesome-free-solid';
-import * as brands from '@fortawesome/fontawesome-free-brands';
-
-// Add icons
-fontawesome.library.add(regular);
-fontawesome.library.add(solid);
-fontawesome.library.add(brands);
+import { pattern, replacement } from '../../../src/common/build/fa';
export default () => ({
enforce: 'pre',
@@ -20,41 +11,7 @@ export default () => ({
exclude: /node_modules/,
loader: StringReplacePlugin.replace({
replacements: [{
- pattern: /%fa:(.+?)%/g, replacement: (_, key) => {
- const args = key.split(' ');
- let prefix = 'fas';
- const classes = [];
- let transform = '';
- let name;
-
- args.forEach(arg => {
- if (arg == 'R' || arg == 'S' || arg == 'B') {
- prefix =
- arg == 'R' ? 'far' :
- arg == 'S' ? 'fas' :
- arg == 'B' ? 'fab' :
- '';
- } else if (arg[0] == '.') {
- classes.push('fa-' + arg.substr(1));
- } else if (arg[0] == '-') {
- transform = arg.substr(1).split('|').join(' ');
- } else {
- name = arg;
- }
- });
-
- const icon = fontawesome.icon({ prefix, iconName: name }, {
- classes: classes
- });
-
- if (icon) {
- icon.transform = fontawesome.parse.transform(transform);
- return `<i data-fa class="${name}">${icon.html[0]}</i>`;
- } else {
- console.warn(`'${name}' not found in fa`);
- return '';
- }
- }
+ pattern, replacement
}]
})
});
diff --git a/webpack/module/rules/i18n.ts b/webpack/module/rules/i18n.ts
index aa4e58448f..7261548be5 100644
--- a/webpack/module/rules/i18n.ts
+++ b/webpack/module/rules/i18n.ts
@@ -3,28 +3,10 @@
*/
const StringReplacePlugin = require('string-replace-webpack-plugin');
+import Replacer from '../../../src/common/build/i18n';
-export default (lang, locale) => {
- function get(key: string) {
- let text = locale;
-
- // Check the key existance
- const error = key.split('.').some(k => {
- if (text.hasOwnProperty(k)) {
- text = text[k];
- return false;
- } else {
- return true;
- }
- });
-
- if (error) {
- console.warn(`key '${key}' not found in '${lang}'`);
- return key; // Fallback
- } else {
- return text;
- }
- }
+export default lang => {
+ const replacer = new Replacer(lang);
return {
enforce: 'pre',
@@ -32,14 +14,7 @@ export default (lang, locale) => {
exclude: /node_modules/,
loader: StringReplacePlugin.replace({
replacements: [{
- pattern: /"%i18n:(.+?)%"/g, replacement: (_, key) =>
- '"' + get(key).replace(/"/g, '\\"') + '"'
- }, {
- pattern: /'%i18n:(.+?)%'/g, replacement: (_, key) =>
- '\'' + get(key).replace(/'/g, '\\\'') + '\''
- }, {
- pattern: /%i18n:(.+?)%/g, replacement: (_, key) =>
- get(key)
+ pattern: replacer.pattern, replacement: replacer.replacement
}]
})
};
diff --git a/webpack/module/rules/index.ts b/webpack/module/rules/index.ts
index 79740ce48e..b02bdef723 100644
--- a/webpack/module/rules/index.ts
+++ b/webpack/module/rules/index.ts
@@ -1,4 +1,5 @@
import i18n from './i18n';
+import license from './license';
import fa from './fa';
import base64 from './base64';
import themeColor from './theme-color';
@@ -6,8 +7,9 @@ import tag from './tag';
import stylus from './stylus';
import typescript from './typescript';
-export default (lang, locale) => [
- i18n(lang, locale),
+export default lang => [
+ i18n(lang),
+ license(),
fa(),
base64(),
themeColor(),
diff --git a/webpack/module/rules/license.ts b/webpack/module/rules/license.ts
new file mode 100644
index 0000000000..de8b7d79fb
--- /dev/null
+++ b/webpack/module/rules/license.ts
@@ -0,0 +1,17 @@
+/**
+ * Inject license
+ */
+
+const StringReplacePlugin = require('string-replace-webpack-plugin');
+import { licenseHtml } from '../../../src/common/build/license';
+
+export default () => ({
+ enforce: 'pre',
+ test: /\.(tag|js)$/,
+ exclude: /node_modules/,
+ loader: StringReplacePlugin.replace({
+ replacements: [{
+ pattern: '%license%', replacement: () => licenseHtml
+ }]
+ })
+});