hexo-adsense 1.0.26 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/LICENSE +0 -0
- package/dist/index.cjs +757 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +740 -0
- package/dist/index.mjs +740 -0
- package/dist/source/adblock.css +2 -0
- package/{lib → dist}/source/adblock.js +0 -0
- package/{lib → dist}/source/article-ads.css +0 -0
- package/dist/source/article-ads.js +1 -0
- package/{lib/source/article-ads.js → dist/source/article-ads.old.js} +0 -0
- package/{lib → dist}/source/blogger-redirect.html +0 -0
- package/{lib → dist}/source/https.js +0 -0
- package/{lib → dist}/source/in_article_ads_test.html +0 -0
- package/package.json +122 -37
- package/{README.md → readme.md} +29 -11
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -85
- package/lib/packages/hexo-cli-extras/lib/env.d.ts +0 -3
- package/lib/packages/hexo-cli-extras/lib/env.js +0 -49
- package/lib/packages/hexo-extend-injector2/index.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/index.js +0 -12
- package/lib/packages/hexo-extend-injector2/lib/bundle/css-bundle.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/bundle/css-bundle.js +0 -64
- package/lib/packages/hexo-extend-injector2/lib/bundle/css-generator.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/bundle/css-generator.js +0 -12
- package/lib/packages/hexo-extend-injector2/lib/bundle/handle-data-pre.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/bundle/handle-data-pre.js +0 -28
- package/lib/packages/hexo-extend-injector2/lib/bundle/js-bundle.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/bundle/js-bundle.js +0 -32
- package/lib/packages/hexo-extend-injector2/lib/bundle/js-generator.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/bundle/js-generator.js +0 -8
- package/lib/packages/hexo-extend-injector2/lib/default-config.d.ts +0 -39
- package/lib/packages/hexo-extend-injector2/lib/default-config.js +0 -46
- package/lib/packages/hexo-extend-injector2/lib/filter.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/filter.js +0 -22
- package/lib/packages/hexo-extend-injector2/lib/helper/injector.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/helper/injector.js +0 -5
- package/lib/packages/hexo-extend-injector2/lib/helper/next-inject.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/helper/next-inject.js +0 -12
- package/lib/packages/hexo-extend-injector2/lib/injector.d.ts +0 -29
- package/lib/packages/hexo-extend-injector2/lib/injector.js +0 -125
- package/lib/packages/hexo-extend-injector2/lib/load.d.ts +0 -3
- package/lib/packages/hexo-extend-injector2/lib/load.js +0 -37
- package/lib/packages/hexo-extend-injector2/lib/next-point.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/next-point.js +0 -18
- package/lib/packages/hexo-extend-injector2/lib/next.d.ts +0 -2
- package/lib/packages/hexo-extend-injector2/lib/next.js +0 -99
- package/lib/packages/hexo-extend-injector2/lib/order.d.ts +0 -5
- package/lib/packages/hexo-extend-injector2/lib/order.js +0 -8
- package/lib/source/adblock.css +0 -2
- package/lib/src/article-ads.d.ts +0 -20
- package/lib/src/article-ads.js +0 -304
- package/lib/src/checkLocalHost.d.ts +0 -10
- package/lib/src/checkLocalHost.js +0 -37
- package/lib/src/config.d.ts +0 -13
- package/lib/src/config.js +0 -42
- package/lib/src/html-parser.d.ts +0 -9
- package/lib/src/html-parser.js +0 -26
- package/lib/src/log.d.ts +0 -1
- package/lib/src/log.js +0 -11
- package/lib/src/logger.d.ts +0 -3
- package/lib/src/logger.js +0 -25
- package/lib/src/md5.d.ts +0 -2
- package/lib/src/md5.js +0 -165
- package/lib/src/safestringify.d.ts +0 -2
- package/lib/src/safestringify.js +0 -125
- package/lib/src/utils.d.ts +0 -31
- package/lib/src/utils.js +0 -159
- package/lib/src/versionParser.d.ts +0 -27
- package/lib/src/versionParser.js +0 -40
- package/packages/hexo-cli-extras/.eslintrc +0 -13
- package/packages/hexo-cli-extras/LICENSE.md +0 -20
- package/packages/hexo-cli-extras/README.md +0 -146
- package/packages/hexo-cli-extras/docs/basic.gif +0 -0
- package/packages/hexo-cli-extras/docs/gui.gif +0 -0
- package/packages/hexo-cli-extras/docs/remove.png +0 -0
- package/packages/hexo-cli-extras/docs/rename.png +0 -0
- package/packages/hexo-cli-extras/index.js +0 -48
- package/packages/hexo-cli-extras/lib/edit.js +0 -209
- package/packages/hexo-cli-extras/lib/env.js +0 -52
- package/packages/hexo-cli-extras/lib/extensions.js +0 -23
- package/packages/hexo-cli-extras/lib/integrate.js +0 -87
- package/packages/hexo-cli-extras/lib/isolate.js +0 -179
- package/packages/hexo-cli-extras/lib/remove.js +0 -145
- package/packages/hexo-cli-extras/lib/rename.js +0 -171
- package/packages/hexo-cli-extras/package.json +0 -34
- package/packages/hexo-extend-injector2/.eslintrc +0 -4
- package/packages/hexo-extend-injector2/.github/workflows/linter.yml +0 -27
- package/packages/hexo-extend-injector2/.github/workflows/tester.yml +0 -24
- package/packages/hexo-extend-injector2/.vscode/settings.json +0 -10
- package/packages/hexo-extend-injector2/LICENSE +0 -165
- package/packages/hexo-extend-injector2/README-ZH.md +0 -189
- package/packages/hexo-extend-injector2/README.md +0 -191
- package/packages/hexo-extend-injector2/USAGE.md +0 -38
- package/packages/hexo-extend-injector2/index.js +0 -14
- package/packages/hexo-extend-injector2/lib/bundle/css-bundle.js +0 -79
- package/packages/hexo-extend-injector2/lib/bundle/css-generator.js +0 -13
- package/packages/hexo-extend-injector2/lib/bundle/handle-data-pre.js +0 -29
- package/packages/hexo-extend-injector2/lib/bundle/js-bundle.js +0 -42
- package/packages/hexo-extend-injector2/lib/bundle/js-generator.js +0 -10
- package/packages/hexo-extend-injector2/lib/default-config.js +0 -52
- package/packages/hexo-extend-injector2/lib/filter.js +0 -24
- package/packages/hexo-extend-injector2/lib/helper/injector.js +0 -6
- package/packages/hexo-extend-injector2/lib/helper/next-inject.js +0 -14
- package/packages/hexo-extend-injector2/lib/injector.js +0 -128
- package/packages/hexo-extend-injector2/lib/load.js +0 -45
- package/packages/hexo-extend-injector2/lib/next-point.js +0 -19
- package/packages/hexo-extend-injector2/lib/next.js +0 -87
- package/packages/hexo-extend-injector2/lib/order.js +0 -9
- package/packages/hexo-extend-injector2/package.json +0 -49
- package/packages/hexo-extend-injector2/renovate.json +0 -6
- package/packages/hexo-extend-injector2/test/.eslintrc +0 -3
- package/packages/hexo-extend-injector2/test/index.js +0 -18
- package/packages/hexo-extend-injector2/test/lib/bundle/bundle-css.js +0 -86
- package/packages/hexo-extend-injector2/test/lib/bundle/bundle-js.js +0 -36
- package/packages/hexo-extend-injector2/test/lib/bundle/test.css +0 -3
- package/packages/hexo-extend-injector2/test/lib/bundle/test.js +0 -5
- package/packages/hexo-extend-injector2/test/lib/helper/injector.js +0 -45
- package/packages/hexo-extend-injector2/test/lib/helper/next-inject.js +0 -69
- package/packages/hexo-extend-injector2/test/lib/hexo-compatible.js +0 -250
- package/packages/hexo-extend-injector2/test/lib/hexo-injector.js +0 -37
- package/packages/hexo-extend-injector2/test/lib/injector.js +0 -93
- package/packages/memoize/CHANGELOG.md +0 -82
- package/packages/memoize/CHANGES +0 -124
- package/packages/memoize/LICENSE +0 -15
- package/packages/memoize/README.md +0 -503
- package/packages/memoize/ext/async.js +0 -154
- package/packages/memoize/ext/dispose.js +0 -33
- package/packages/memoize/ext/max-age.js +0 -90
- package/packages/memoize/ext/max.js +0 -27
- package/packages/memoize/ext/promise.js +0 -147
- package/packages/memoize/ext/ref-counter.js +0 -48
- package/packages/memoize/index.js +0 -34
- package/packages/memoize/lib/configure-map.js +0 -182
- package/packages/memoize/lib/methods.js +0 -32
- package/packages/memoize/lib/registered-extensions.js +0 -1
- package/packages/memoize/lib/resolve-length.js +0 -15
- package/packages/memoize/lib/resolve-normalize.js +0 -17
- package/packages/memoize/lib/resolve-resolve.js +0 -21
- package/packages/memoize/lib/weak.js +0 -134
- package/packages/memoize/methods-plain.js +0 -3
- package/packages/memoize/methods.js +0 -3
- package/packages/memoize/normalizers/get-1.js +0 -29
- package/packages/memoize/normalizers/get-fixed.js +0 -71
- package/packages/memoize/normalizers/get-primitive-fixed.js +0 -16
- package/packages/memoize/normalizers/get.js +0 -90
- package/packages/memoize/normalizers/primitive.js +0 -9
- package/packages/memoize/package.json +0 -60
- package/packages/memoize/plain.js +0 -37
- package/packages/memoize/profile.js +0 -107
- package/packages/memoize/repository.md +0 -1
- package/packages/memoize/weak-plain.js +0 -3
- package/packages/memoize/weak.js +0 -3
- package/unused.md +0 -12
package/lib/src/article-ads.js
DELETED
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-unused-vars */
|
|
2
|
-
/// <reference path="./article-ads.d.ts"/>
|
|
3
|
-
/**
|
|
4
|
-
* Server side processor
|
|
5
|
-
*/
|
|
6
|
-
///
|
|
7
|
-
var Hexo = require("hexo");
|
|
8
|
-
var fs = require("hexo-fs");
|
|
9
|
-
var path = require("path");
|
|
10
|
-
var minimatch = require("minimatch");
|
|
11
|
-
var utils = require("./utils");
|
|
12
|
-
var log = require("./log");
|
|
13
|
-
var memoize = require("underscore").memoize;
|
|
14
|
-
var md5 = require("./md5");
|
|
15
|
-
var adsContent = "<div hexo-adsense=\"ads-content\">ADS_CODE_HERE</div>";
|
|
16
|
-
String.prototype.joinpath = function (str) {
|
|
17
|
-
return path.join(this.toString(), str);
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Article ads reader
|
|
21
|
-
* @param {string[]} files
|
|
22
|
-
* @param {Hexo} hexo
|
|
23
|
-
*/
|
|
24
|
-
function articleAds(files, hexo) {
|
|
25
|
-
var base_dir = hexo.base_dir;
|
|
26
|
-
var source_dir = hexo.source_dir;
|
|
27
|
-
var isDevelopment = require("./config")(hexo).development;
|
|
28
|
-
//hexo.log.log(isDevelopment, "dev");
|
|
29
|
-
/**
|
|
30
|
-
* @type {string[]}
|
|
31
|
-
*/
|
|
32
|
-
var result = [];
|
|
33
|
-
files.forEach(function (file) {
|
|
34
|
-
/**
|
|
35
|
-
* @type {string}
|
|
36
|
-
*/
|
|
37
|
-
var html;
|
|
38
|
-
var tes = base_dir.joinpath(file);
|
|
39
|
-
if (fs.existsSync(tes)) {
|
|
40
|
-
html = fs.readFileSync(tes).toString();
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
tes = source_dir.joinpath(file);
|
|
44
|
-
if (fs.existsSync(tes)) {
|
|
45
|
-
html = fs.readFileSync(tes).toString();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (html.length > 0) {
|
|
49
|
-
if (isDevelopment) {
|
|
50
|
-
// ad-test on localhost
|
|
51
|
-
// https://stackoverflow.com/a/34389120
|
|
52
|
-
html = html.replace(/><\/ins>/gm, " data-adtest=\"on\"></ins>");
|
|
53
|
-
}
|
|
54
|
-
// replace script adsbygoogle.push
|
|
55
|
-
html = html.replace(/\(adsbygoogle?\s*=?\s*window\.adsbygoogle?\s*\|\|?\s*\[\]\)\.push\({}\);/gm, "");
|
|
56
|
-
// replace scripts
|
|
57
|
-
//html = html.replace(/<script\b[^>]*>([\s\S]*?)<\/script>/gm, "");
|
|
58
|
-
// replace script src=adsbygoogle.js
|
|
59
|
-
html = html.replace(/<script?.*src?.*adsbygoogle\b[^>]*>([\s\S]*?)<\/script>/gm, "");
|
|
60
|
-
result.push(adsContent.replace("ADS_CODE_HERE", html));
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
return result;
|
|
64
|
-
}
|
|
65
|
-
function after_generate() {
|
|
66
|
-
/**
|
|
67
|
-
* @type {Hexo}
|
|
68
|
-
*/
|
|
69
|
-
var hexo = this, route = hexo.route, options = require("./config")(hexo);
|
|
70
|
-
//console.log(arguments.length);
|
|
71
|
-
// Filter routes to select all html files.
|
|
72
|
-
var routes = route.list().filter(function (path0) {
|
|
73
|
-
var choose = minimatch(path0, "**/*.{htm,html}", { nocase: true });
|
|
74
|
-
console.log(choose, path0);
|
|
75
|
-
if (typeof options.exclude != "undefined") {
|
|
76
|
-
choose = choose && !utils.isIgnore(path0, options.exclude);
|
|
77
|
-
}
|
|
78
|
-
if (typeof hexo.config.skip_render != "undefined") {
|
|
79
|
-
// _config.yml skip_render https://hexo.io/docs/configuration.html#Directory
|
|
80
|
-
choose = choose && !utils.isIgnore(path0, hexo.config.skip_render);
|
|
81
|
-
}
|
|
82
|
-
return choose;
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
var cx = require("./config")(null);
|
|
86
|
-
/**
|
|
87
|
-
* filter and parse html ads files {adsense.article_ads}
|
|
88
|
-
* @param {typeof cx} options
|
|
89
|
-
* @param {Hexo} hexo
|
|
90
|
-
* @returns {string[]} html string arrays
|
|
91
|
-
*/
|
|
92
|
-
function filter_adshtml(hexo) {
|
|
93
|
-
var options = require("./config")(hexo);
|
|
94
|
-
// parse article ads
|
|
95
|
-
/**
|
|
96
|
-
* @type {string[]}
|
|
97
|
-
*/
|
|
98
|
-
var adshtml = [];
|
|
99
|
-
if (Array.isArray(options.article_ads)) {
|
|
100
|
-
adshtml = options.article_ads;
|
|
101
|
-
}
|
|
102
|
-
else if (typeof options.article_ads == "string") {
|
|
103
|
-
adshtml = [options.article_ads];
|
|
104
|
-
}
|
|
105
|
-
if (adshtml.length > 0) {
|
|
106
|
-
adshtml = adshtml.filter(function (ads) {
|
|
107
|
-
return typeof ads == "string" && ads.trim().length > 0;
|
|
108
|
-
});
|
|
109
|
-
if (adshtml.length > 0) {
|
|
110
|
-
// adshtml turned to array html string
|
|
111
|
-
adshtml = articleAds(adshtml, hexo);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return adshtml;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* filter excluded patterns
|
|
118
|
-
* @param {string} content data.content or content based on event type
|
|
119
|
-
* @param {string} source_path full source path of the source file
|
|
120
|
-
* @param {Hexo} hexo hexo instances
|
|
121
|
-
* @returns content html string
|
|
122
|
-
*/
|
|
123
|
-
var filter_patterns = function (content, source_path, hexo) {
|
|
124
|
-
var _a;
|
|
125
|
-
var options = require("./config")(hexo);
|
|
126
|
-
var excluded = utils.isIgnore(source_path, options.exclude, hexo);
|
|
127
|
-
// if `source_path` undefined, that is archive or tags
|
|
128
|
-
if (source_path && excluded && !minimatch(source_path, "**/*.{htm,html}", { nocase: true })) {
|
|
129
|
-
log.log((_a = {}, _a[source_path] = excluded, _a), "isnt html, skipping...");
|
|
130
|
-
return {
|
|
131
|
-
content: content,
|
|
132
|
-
excluded: true
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
//log.log("is excluded", excluded, source_path);
|
|
136
|
-
// if the post or page is match excluded pattern, return original contents
|
|
137
|
-
if (excluded) {
|
|
138
|
-
//remove pagead on head caused by ../index.js
|
|
139
|
-
content = content.replace(/<script?.*src?.*adsbygoogle?\b[^>]*>([\s\S]*?)<\/script>/gm, "<!--hexo-adsense disabled on this page-->");
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
content: content,
|
|
143
|
-
excluded: excluded
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
/**
|
|
147
|
-
* inject ads after_post_render event
|
|
148
|
-
* @example
|
|
149
|
-
* hexo.extend.filter.register("after_generate", injectAdsAfterGenerate);
|
|
150
|
-
*/
|
|
151
|
-
function after_post_render(data) {
|
|
152
|
-
/**
|
|
153
|
-
* @type {Hexo}
|
|
154
|
-
*/
|
|
155
|
-
var hexo = this;
|
|
156
|
-
var options = require("./config")(hexo);
|
|
157
|
-
//utils.dump("after_post_render/" + md5(data.title) + ".txt", data);
|
|
158
|
-
var filterPattern = filter_patterns(data.content, getPageSource(data), hexo);
|
|
159
|
-
data.content = filterPattern.content;
|
|
160
|
-
if (filterPattern.excluded) {
|
|
161
|
-
// if this post excluded, return original data
|
|
162
|
-
return data;
|
|
163
|
-
}
|
|
164
|
-
//log.log(data.title, "not excluded");
|
|
165
|
-
// parse article ads
|
|
166
|
-
/**
|
|
167
|
-
* @type {string[]}
|
|
168
|
-
*/
|
|
169
|
-
var adshtml = filter_adshtml(hexo);
|
|
170
|
-
if (adshtml.length < 1) {
|
|
171
|
-
return data;
|
|
172
|
-
}
|
|
173
|
-
if (typeof data.adsense == "boolean") {
|
|
174
|
-
if (data.adsense) {
|
|
175
|
-
//log.log(data.title, "adsense is enabled locally");
|
|
176
|
-
// if post adsense is enabled
|
|
177
|
-
data.content = processAdsHtml(data.content, adshtml, hexo);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
else if (options.enable) {
|
|
181
|
-
//log.log(data.title, "adsense is enabled globally");
|
|
182
|
-
// if adsense is enabled globally and post adsense not set
|
|
183
|
-
// enable adsense on post
|
|
184
|
-
data.content = processAdsHtml(data.content, adshtml, hexo);
|
|
185
|
-
}
|
|
186
|
-
return data;
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* process injector adshtml strings
|
|
190
|
-
* @param {string[]} adshtml
|
|
191
|
-
* @param {Hexo} hexo hexo instances
|
|
192
|
-
* @param {string} content content html of page
|
|
193
|
-
*/
|
|
194
|
-
function processAdsHtml(content, adshtml, hexo) {
|
|
195
|
-
var options = require("./config")(hexo);
|
|
196
|
-
var replacement = memoize(function (adshtml) {
|
|
197
|
-
var adsContentCss = __dirname.joinpath("../source/article-ads.css");
|
|
198
|
-
var adsContentJs = __dirname.joinpath("../source/article-ads.js");
|
|
199
|
-
var replacement = "<div id=\"hexo-adsense-hidden\" style=\"display:none\">" + adshtml.join("") + "</div>";
|
|
200
|
-
if (fs.existsSync(adsContentCss)) {
|
|
201
|
-
replacement += "<style>" + fs.readFileSync(adsContentCss).toString() + "</style>";
|
|
202
|
-
}
|
|
203
|
-
if (fs.existsSync(adsContentJs)) {
|
|
204
|
-
replacement += "<script>" + fs.readFileSync(adsContentJs).toString() + "</script>";
|
|
205
|
-
}
|
|
206
|
-
return replacement;
|
|
207
|
-
});
|
|
208
|
-
var caller = new Error().stack.split("at ")[2].replace(/^Hexo./g, "");
|
|
209
|
-
var isFieldPost = caller.startsWith("after_post_render");
|
|
210
|
-
//const isFieldSite = caller.startsWith("after_render_html");
|
|
211
|
-
if (isFieldPost) {
|
|
212
|
-
content += replacement(adshtml);
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
// add pagead if global _config.yml adsense disabled {adsense.enable: false}
|
|
216
|
-
// prevent duplicate onpage adsense in </head>
|
|
217
|
-
if (!options.enable) {
|
|
218
|
-
content = content.replace(/<\/head>/gm, "<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=" + options.pub + "\" crossorigin=\"anonymous\"></script>");
|
|
219
|
-
}
|
|
220
|
-
content = content.replace(/<\/body>/gm, replacement(adshtml) + "</body>");
|
|
221
|
-
}
|
|
222
|
-
return content;
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Get page source path
|
|
226
|
-
* @param {object} page
|
|
227
|
-
* @returns {string}
|
|
228
|
-
*/
|
|
229
|
-
function getPageSource(page) {
|
|
230
|
-
if (typeof page.full_source != "undefined") {
|
|
231
|
-
return page.full_source;
|
|
232
|
-
}
|
|
233
|
-
if (typeof page.source != "undefined") {
|
|
234
|
-
return page.source;
|
|
235
|
-
}
|
|
236
|
-
// if archive page, source and full_source are not specified
|
|
237
|
-
if (typeof page.path != "undefined") {
|
|
238
|
-
return page.path;
|
|
239
|
-
}
|
|
240
|
-
if (typeof page.canonical_path != "undefined") {
|
|
241
|
-
return page.canonical_path;
|
|
242
|
-
}
|
|
243
|
-
//log.log(page.canonical_path);
|
|
244
|
-
//utils.dump("pageSource.txt", page.canonical_path, page);
|
|
245
|
-
return undefined;
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Inject ads after_render:html event (on all page)
|
|
249
|
-
* @param {object} data
|
|
250
|
-
* @param {string} content
|
|
251
|
-
*/
|
|
252
|
-
function after_render_html(content, data) {
|
|
253
|
-
/**
|
|
254
|
-
* @type {Hexo}
|
|
255
|
-
*/
|
|
256
|
-
var hexo = this;
|
|
257
|
-
var options = require("./config")(hexo);
|
|
258
|
-
var page;
|
|
259
|
-
if (data.post) {
|
|
260
|
-
data.type = "post";
|
|
261
|
-
page = data.post;
|
|
262
|
-
}
|
|
263
|
-
else if (data.page) {
|
|
264
|
-
data.type = "page";
|
|
265
|
-
page = data.page;
|
|
266
|
-
}
|
|
267
|
-
/*delete page._content;
|
|
268
|
-
delete page.raw;
|
|
269
|
-
delete page.content;
|
|
270
|
-
delete page.excerpt;
|
|
271
|
-
log.log(page);*/
|
|
272
|
-
var filterPattern = filter_patterns(content, getPageSource(page), hexo);
|
|
273
|
-
if (filterPattern.excluded) {
|
|
274
|
-
// if this post is excluded, return original content
|
|
275
|
-
return filterPattern.content;
|
|
276
|
-
}
|
|
277
|
-
// parse article ads
|
|
278
|
-
/**
|
|
279
|
-
* @type {string[]}
|
|
280
|
-
*/
|
|
281
|
-
var adshtml = filter_adshtml(hexo);
|
|
282
|
-
if (adshtml.length < 1) {
|
|
283
|
-
return content;
|
|
284
|
-
}
|
|
285
|
-
if (typeof page.adsense == "boolean") {
|
|
286
|
-
// apply adsense on each rendering post {adsense: true}
|
|
287
|
-
if (page.adsense) {
|
|
288
|
-
//console.log("adsense enabled at post", page.title);
|
|
289
|
-
content = processAdsHtml(content, adshtml, hexo);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
else if (options.enable) {
|
|
293
|
-
// if adsense is enabled globally and post adsense not set
|
|
294
|
-
// enable adsense on post
|
|
295
|
-
content = processAdsHtml(content, adshtml, hexo);
|
|
296
|
-
}
|
|
297
|
-
// return modified html
|
|
298
|
-
return content;
|
|
299
|
-
}
|
|
300
|
-
module.exports = {
|
|
301
|
-
endbodycode: articleAds,
|
|
302
|
-
after_render_html: after_render_html,
|
|
303
|
-
after_post_render: after_post_render
|
|
304
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Check if address/dnsname is local
|
|
3
|
-
* @param {*} address <ip address/dns name>
|
|
4
|
-
* @see {@link https://github.com/sanketbajoria/check-localhost#readme}
|
|
5
|
-
* @example
|
|
6
|
-
* const locals = ["127.0.0.1", "localhost", "::1"];
|
|
7
|
-
* checkLocalHost(locals[0]).then(function (isLocal){}) // isLocal is true
|
|
8
|
-
*/
|
|
9
|
-
declare const checkLocalHost: <T = Function>(fn: T, hashFn?: (...args: any[]) => string) => T;
|
|
10
|
-
export { checkLocalHost as default };
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
var dns = require("dns");
|
|
2
|
-
var os = require("os");
|
|
3
|
-
var memoize = require("./utils").memoize;
|
|
4
|
-
var ifaces = os.networkInterfaces();
|
|
5
|
-
/**
|
|
6
|
-
* Check if address/dnsname is local
|
|
7
|
-
* @param {*} address <ip address/dns name>
|
|
8
|
-
* @see {@link https://github.com/sanketbajoria/check-localhost#readme}
|
|
9
|
-
* @example
|
|
10
|
-
* const locals = ["127.0.0.1", "localhost", "::1"];
|
|
11
|
-
* checkLocalHost(locals[0]).then(function (isLocal){}) // isLocal is true
|
|
12
|
-
*/
|
|
13
|
-
var checkLocalHost = memoize(function (address) {
|
|
14
|
-
return new Promise(function (resolve, reject) {
|
|
15
|
-
dns.lookup(address, function (err, addr) {
|
|
16
|
-
if (err) {
|
|
17
|
-
return resolve(false, addr);
|
|
18
|
-
}
|
|
19
|
-
try {
|
|
20
|
-
address = addr;
|
|
21
|
-
Object.keys(ifaces).forEach(function (ifname) {
|
|
22
|
-
ifaces[ifname].forEach(function (iface) {
|
|
23
|
-
if (iface.address === address)
|
|
24
|
-
resolve(true, iface);
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
resolve(false, ifaces);
|
|
28
|
-
}
|
|
29
|
-
catch (err) {
|
|
30
|
-
reject(err, addr);
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
module.exports = {
|
|
36
|
-
"default": checkLocalHost
|
|
37
|
-
};
|
package/lib/src/config.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
declare function _exports(hexo: Hexo): typeof defaultConfig;
|
|
2
|
-
export = _exports;
|
|
3
|
-
import Hexo = require("hexo");
|
|
4
|
-
declare namespace defaultConfig {
|
|
5
|
-
const enable: boolean;
|
|
6
|
-
const article_ads: string[];
|
|
7
|
-
const pub: string;
|
|
8
|
-
const adblock: boolean;
|
|
9
|
-
const https: boolean;
|
|
10
|
-
const field: string;
|
|
11
|
-
const exclude: string[];
|
|
12
|
-
const development: boolean;
|
|
13
|
-
}
|
package/lib/src/config.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-unused-vars */
|
|
2
|
-
/* global hexo */
|
|
3
|
-
var Hexo = require("hexo");
|
|
4
|
-
var assign = require("object-assign");
|
|
5
|
-
var defaultConfig = {
|
|
6
|
-
/**
|
|
7
|
-
* Enable adsense
|
|
8
|
-
*/
|
|
9
|
-
enable: true,
|
|
10
|
-
article_ads: [""].filter(function (v) {
|
|
11
|
-
return typeof v == "string" && v.length > 0;
|
|
12
|
-
}),
|
|
13
|
-
/**
|
|
14
|
-
* Adsense ca-pub
|
|
15
|
-
*/
|
|
16
|
-
pub: "",
|
|
17
|
-
adblock: false,
|
|
18
|
-
https: false,
|
|
19
|
-
field: "site",
|
|
20
|
-
exclude: [".gitignore"],
|
|
21
|
-
/**
|
|
22
|
-
* is development mode?
|
|
23
|
-
*/
|
|
24
|
-
development: false
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* hexo-adsense config
|
|
28
|
-
* @param {Hexo} hexo
|
|
29
|
-
* @returns {typeof defaultConfig}
|
|
30
|
-
*/
|
|
31
|
-
module.exports = function (hexo) {
|
|
32
|
-
if (hexo && typeof hexo.config.adsense != "undefined") {
|
|
33
|
-
/**
|
|
34
|
-
* @type {typeof defaultConfig}
|
|
35
|
-
*/
|
|
36
|
-
var c = assign(defaultConfig, hexo.config.adsense);
|
|
37
|
-
c.development = defaultConfig.development = require("../packages/hexo-cli-extras/lib/env").isDev(hexo);
|
|
38
|
-
///////////console.log(c);
|
|
39
|
-
return c;
|
|
40
|
-
}
|
|
41
|
-
return defaultConfig;
|
|
42
|
-
};
|
package/lib/src/html-parser.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export function parse(str: any): jsdom.JSDOM;
|
|
2
|
-
/**
|
|
3
|
-
* create node from html string
|
|
4
|
-
* @param {string} htmlString
|
|
5
|
-
* @returns
|
|
6
|
-
*/
|
|
7
|
-
declare function createElementFromHTML(htmlString: string): ChildNode;
|
|
8
|
-
import jsdom = require("jsdom");
|
|
9
|
-
export { createElementFromHTML as createNodeFromHtml };
|
package/lib/src/html-parser.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
var jsdom = require("jsdom");
|
|
2
|
-
var JSDOM = jsdom.JSDOM;
|
|
3
|
-
function parse(str) {
|
|
4
|
-
return new JSDOM(str);
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* create node from html string
|
|
8
|
-
* @param {string} htmlString
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
function createElementFromHTML(htmlString) {
|
|
12
|
-
var dom = new JSDOM("");
|
|
13
|
-
// Get DOMParser, same API as in browser
|
|
14
|
-
var DOMParser = dom.window.DOMParser;
|
|
15
|
-
var parser = new DOMParser();
|
|
16
|
-
// Create document by parsing XML/HTML
|
|
17
|
-
var document = parser.parseFromString(htmlString, "text/html");
|
|
18
|
-
var div = document.createElement("div");
|
|
19
|
-
div.innerHTML = htmlString.trim();
|
|
20
|
-
// Change this to div.childNodes to support multiple top-level nodes
|
|
21
|
-
return div.firstChild;
|
|
22
|
-
}
|
|
23
|
-
module.exports = {
|
|
24
|
-
parse: parse,
|
|
25
|
-
createNodeFromHtml: createElementFromHTML
|
|
26
|
-
};
|
package/lib/src/log.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/src/log.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
var hexo_log_1 = __importDefault(require("hexo-log"));
|
|
7
|
-
var log = (0, hexo_log_1["default"])({
|
|
8
|
-
debug: false,
|
|
9
|
-
silent: false
|
|
10
|
-
});
|
|
11
|
-
module.exports = log;
|
package/lib/src/logger.d.ts
DELETED
package/lib/src/logger.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
var logger = {
|
|
2
|
-
log: log2,
|
|
3
|
-
once: once
|
|
4
|
-
};
|
|
5
|
-
var once = (function () {
|
|
6
|
-
var fn = [];
|
|
7
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
8
|
-
fn[_i] = arguments[_i];
|
|
9
|
-
}
|
|
10
|
-
var executed = false;
|
|
11
|
-
return function () {
|
|
12
|
-
if (!executed) {
|
|
13
|
-
executed = true;
|
|
14
|
-
// do something
|
|
15
|
-
if (typeof fn[0] == "function")
|
|
16
|
-
return fn[0]();
|
|
17
|
-
console.log(fn);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
})();
|
|
21
|
-
function log2(msg) {
|
|
22
|
-
var logLineDetails = new Error().stack.split("at ")[3].trim();
|
|
23
|
-
console.log("DEBUG", new Date().toUTCString(), logLineDetails, msg);
|
|
24
|
-
}
|
|
25
|
-
module.exports = logger;
|
package/lib/src/md5.d.ts
DELETED
package/lib/src/md5.js
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
function md5cycle(x, k) {
|
|
2
|
-
var a = x[0], b = x[1], c = x[2], d = x[3];
|
|
3
|
-
a = ff(a, b, c, d, k[0], 7, -680876936);
|
|
4
|
-
d = ff(d, a, b, c, k[1], 12, -389564586);
|
|
5
|
-
c = ff(c, d, a, b, k[2], 17, 606105819);
|
|
6
|
-
b = ff(b, c, d, a, k[3], 22, -1044525330);
|
|
7
|
-
a = ff(a, b, c, d, k[4], 7, -176418897);
|
|
8
|
-
d = ff(d, a, b, c, k[5], 12, 1200080426);
|
|
9
|
-
c = ff(c, d, a, b, k[6], 17, -1473231341);
|
|
10
|
-
b = ff(b, c, d, a, k[7], 22, -45705983);
|
|
11
|
-
a = ff(a, b, c, d, k[8], 7, 1770035416);
|
|
12
|
-
d = ff(d, a, b, c, k[9], 12, -1958414417);
|
|
13
|
-
c = ff(c, d, a, b, k[10], 17, -42063);
|
|
14
|
-
b = ff(b, c, d, a, k[11], 22, -1990404162);
|
|
15
|
-
a = ff(a, b, c, d, k[12], 7, 1804603682);
|
|
16
|
-
d = ff(d, a, b, c, k[13], 12, -40341101);
|
|
17
|
-
c = ff(c, d, a, b, k[14], 17, -1502002290);
|
|
18
|
-
b = ff(b, c, d, a, k[15], 22, 1236535329);
|
|
19
|
-
a = gg(a, b, c, d, k[1], 5, -165796510);
|
|
20
|
-
d = gg(d, a, b, c, k[6], 9, -1069501632);
|
|
21
|
-
c = gg(c, d, a, b, k[11], 14, 643717713);
|
|
22
|
-
b = gg(b, c, d, a, k[0], 20, -373897302);
|
|
23
|
-
a = gg(a, b, c, d, k[5], 5, -701558691);
|
|
24
|
-
d = gg(d, a, b, c, k[10], 9, 38016083);
|
|
25
|
-
c = gg(c, d, a, b, k[15], 14, -660478335);
|
|
26
|
-
b = gg(b, c, d, a, k[4], 20, -405537848);
|
|
27
|
-
a = gg(a, b, c, d, k[9], 5, 568446438);
|
|
28
|
-
d = gg(d, a, b, c, k[14], 9, -1019803690);
|
|
29
|
-
c = gg(c, d, a, b, k[3], 14, -187363961);
|
|
30
|
-
b = gg(b, c, d, a, k[8], 20, 1163531501);
|
|
31
|
-
a = gg(a, b, c, d, k[13], 5, -1444681467);
|
|
32
|
-
d = gg(d, a, b, c, k[2], 9, -51403784);
|
|
33
|
-
c = gg(c, d, a, b, k[7], 14, 1735328473);
|
|
34
|
-
b = gg(b, c, d, a, k[12], 20, -1926607734);
|
|
35
|
-
a = hh(a, b, c, d, k[5], 4, -378558);
|
|
36
|
-
d = hh(d, a, b, c, k[8], 11, -2022574463);
|
|
37
|
-
c = hh(c, d, a, b, k[11], 16, 1839030562);
|
|
38
|
-
b = hh(b, c, d, a, k[14], 23, -35309556);
|
|
39
|
-
a = hh(a, b, c, d, k[1], 4, -1530992060);
|
|
40
|
-
d = hh(d, a, b, c, k[4], 11, 1272893353);
|
|
41
|
-
c = hh(c, d, a, b, k[7], 16, -155497632);
|
|
42
|
-
b = hh(b, c, d, a, k[10], 23, -1094730640);
|
|
43
|
-
a = hh(a, b, c, d, k[13], 4, 681279174);
|
|
44
|
-
d = hh(d, a, b, c, k[0], 11, -358537222);
|
|
45
|
-
c = hh(c, d, a, b, k[3], 16, -722521979);
|
|
46
|
-
b = hh(b, c, d, a, k[6], 23, 76029189);
|
|
47
|
-
a = hh(a, b, c, d, k[9], 4, -640364487);
|
|
48
|
-
d = hh(d, a, b, c, k[12], 11, -421815835);
|
|
49
|
-
c = hh(c, d, a, b, k[15], 16, 530742520);
|
|
50
|
-
b = hh(b, c, d, a, k[2], 23, -995338651);
|
|
51
|
-
a = ii(a, b, c, d, k[0], 6, -198630844);
|
|
52
|
-
d = ii(d, a, b, c, k[7], 10, 1126891415);
|
|
53
|
-
c = ii(c, d, a, b, k[14], 15, -1416354905);
|
|
54
|
-
b = ii(b, c, d, a, k[5], 21, -57434055);
|
|
55
|
-
a = ii(a, b, c, d, k[12], 6, 1700485571);
|
|
56
|
-
d = ii(d, a, b, c, k[3], 10, -1894986606);
|
|
57
|
-
c = ii(c, d, a, b, k[10], 15, -1051523);
|
|
58
|
-
b = ii(b, c, d, a, k[1], 21, -2054922799);
|
|
59
|
-
a = ii(a, b, c, d, k[8], 6, 1873313359);
|
|
60
|
-
d = ii(d, a, b, c, k[15], 10, -30611744);
|
|
61
|
-
c = ii(c, d, a, b, k[6], 15, -1560198380);
|
|
62
|
-
b = ii(b, c, d, a, k[13], 21, 1309151649);
|
|
63
|
-
a = ii(a, b, c, d, k[4], 6, -145523070);
|
|
64
|
-
d = ii(d, a, b, c, k[11], 10, -1120210379);
|
|
65
|
-
c = ii(c, d, a, b, k[2], 15, 718787259);
|
|
66
|
-
b = ii(b, c, d, a, k[9], 21, -343485551);
|
|
67
|
-
x[0] = add32(a, x[0]);
|
|
68
|
-
x[1] = add32(b, x[1]);
|
|
69
|
-
x[2] = add32(c, x[2]);
|
|
70
|
-
x[3] = add32(d, x[3]);
|
|
71
|
-
}
|
|
72
|
-
function cmn(q, a, b, x, s, t) {
|
|
73
|
-
a = add32(add32(a, q), add32(x, t));
|
|
74
|
-
return add32((a << s) | (a >>> (32 - s)), b);
|
|
75
|
-
}
|
|
76
|
-
function ff(a, b, c, d, x, s, t) {
|
|
77
|
-
return cmn((b & c) | (~b & d), a, b, x, s, t);
|
|
78
|
-
}
|
|
79
|
-
function gg(a, b, c, d, x, s, t) {
|
|
80
|
-
return cmn((b & d) | (c & ~d), a, b, x, s, t);
|
|
81
|
-
}
|
|
82
|
-
function hh(a, b, c, d, x, s, t) {
|
|
83
|
-
return cmn(b ^ c ^ d, a, b, x, s, t);
|
|
84
|
-
}
|
|
85
|
-
function ii(a, b, c, d, x, s, t) {
|
|
86
|
-
return cmn(c ^ (b | ~d), a, b, x, s, t);
|
|
87
|
-
}
|
|
88
|
-
function md51(s) {
|
|
89
|
-
txt = "";
|
|
90
|
-
var n = s.length, state = [1732584193, -271733879, -1732584194, 271733878], i;
|
|
91
|
-
for (i = 64; i <= s.length; i += 64) {
|
|
92
|
-
md5cycle(state, md5blk(s.substring(i - 64, i)));
|
|
93
|
-
}
|
|
94
|
-
s = s.substring(i - 64);
|
|
95
|
-
var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
96
|
-
for (i = 0; i < s.length; i++)
|
|
97
|
-
tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);
|
|
98
|
-
tail[i >> 2] |= 0x80 << (i % 4 << 3);
|
|
99
|
-
if (i > 55) {
|
|
100
|
-
md5cycle(state, tail);
|
|
101
|
-
for (i = 0; i < 16; i++)
|
|
102
|
-
tail[i] = 0;
|
|
103
|
-
}
|
|
104
|
-
tail[14] = n * 8;
|
|
105
|
-
md5cycle(state, tail);
|
|
106
|
-
return state;
|
|
107
|
-
}
|
|
108
|
-
/* there needs to be support for Unicode here,
|
|
109
|
-
* unless we pretend that we can redefine the MD-5
|
|
110
|
-
* algorithm for multi-byte characters (perhaps
|
|
111
|
-
* by adding every four 16-bit characters and
|
|
112
|
-
* shortening the sum to 32 bits). Otherwise
|
|
113
|
-
* I suggest performing MD-5 as if every character
|
|
114
|
-
* was two bytes--e.g., 0040 0025 = @%--but then
|
|
115
|
-
* how will an ordinary MD-5 sum be matched?
|
|
116
|
-
* There is no way to standardize text to something
|
|
117
|
-
* like UTF-8 before transformation; speed cost is
|
|
118
|
-
* utterly prohibitive. The JavaScript standard
|
|
119
|
-
* itself needs to look at this: it should start
|
|
120
|
-
* providing access to strings as preformed UTF-8
|
|
121
|
-
* 8-bit unsigned value arrays.
|
|
122
|
-
*/
|
|
123
|
-
function md5blk(s) {
|
|
124
|
-
/* I figured global was faster. */
|
|
125
|
-
var md5blks = [], i; /* Andy King said do it this way. */
|
|
126
|
-
for (i = 0; i < 64; i += 4) {
|
|
127
|
-
md5blks[i >> 2] =
|
|
128
|
-
s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
|
|
129
|
-
}
|
|
130
|
-
return md5blks;
|
|
131
|
-
}
|
|
132
|
-
var hex_chr = "0123456789abcdef".split("");
|
|
133
|
-
function rhex(n) {
|
|
134
|
-
var s = "", j = 0;
|
|
135
|
-
for (; j < 4; j++)
|
|
136
|
-
s += hex_chr[(n >> (j * 8 + 4)) & 0x0f] + hex_chr[(n >> (j * 8)) & 0x0f];
|
|
137
|
-
return s;
|
|
138
|
-
}
|
|
139
|
-
function hex(x) {
|
|
140
|
-
for (var i = 0; i < x.length; i++)
|
|
141
|
-
x[i] = rhex(x[i]);
|
|
142
|
-
return x.join("");
|
|
143
|
-
}
|
|
144
|
-
function md5(s) {
|
|
145
|
-
if (typeof s == "undefined")
|
|
146
|
-
s = "undefined";
|
|
147
|
-
if (!s)
|
|
148
|
-
s = "null";
|
|
149
|
-
return hex(md51(s));
|
|
150
|
-
}
|
|
151
|
-
/* this function is much faster,
|
|
152
|
-
so if possible we use it. Some IEs
|
|
153
|
-
are the only ones I know of that
|
|
154
|
-
need the idiotic second function,
|
|
155
|
-
generated by an if clause. */
|
|
156
|
-
function add32(a, b) {
|
|
157
|
-
return (a + b) & 0xffffffff;
|
|
158
|
-
}
|
|
159
|
-
if (md5("hello") != "5d41402abc4b2a76b9719d911017c592") {
|
|
160
|
-
function add32(x, y) {
|
|
161
|
-
var lsw = (x & 0xffff) + (y & 0xffff), msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
|
162
|
-
return (msw << 16) | (lsw & 0xffff);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
module.exports = md5;
|