The Ezra Klein Show
--
-
diff --git a/packages/readabilityjs/Readability.js b/packages/readabilityjs/Readability.js index abdbfa8d0e..2934841bd4 100644 --- a/packages/readabilityjs/Readability.js +++ b/packages/readabilityjs/Readability.js @@ -76,6 +76,22 @@ const extractPublishedDateFromAuthor = (author)=> { return [authorName, null]; }; +// extract published date from url if it's in the format of yyyy/mm/dd or yyyy-mm-dd +const extractPublishedDateFromUrl = (url) => { + if (!url) return null; + + const regex = /(\d{4})(\/|-)(\d{2})(\/|-)(\d{2})/i; + const match = url.match(regex); + if (match) { + const year = parseInt(match[1], 10); + const month = parseInt(match[3], 10) - 1; // January is 0 in JavaScript Date + const day = parseInt(match[5], 10); + + return new Date(year, month, day); + } + return null; +} + /** * Public constructor. * @param {Document} doc The document to parse. @@ -1081,6 +1097,18 @@ Readability.prototype = { } // we don't want to check for dates in the URL's if (node.tagName.toLowerCase() === 'a') return + // get the datetime from time element + if (node.tagName.toLowerCase() === 'time') { + const datetime = node.getAttribute('datetime') + if (datetime) { + const date = new Date(datetime) + if (!isNaN(date)) { + this._articlePublishedDate = date + return true + } + } + } + // Searching for the real date in the text content const content = node.textContent.trim() let dateFound @@ -3056,7 +3084,11 @@ Readability.prototype = { return null; const byline = metadata.byline || this._articleByline; - const [author, publishedAt] = extractPublishedDateFromAuthor(byline); + const [author, publishedDateFromAuthor] = extractPublishedDateFromAuthor(byline); + const publishedDate = metadata.publishedDate || + extractPublishedDateFromUrl(this._documentURI) || + publishedDateFromAuthor || + this._articlePublishedDate; this._postProcessContent(articleContent); @@ -3092,7 +3124,7 @@ Readability.prototype = { siteName: metadata.siteName, siteIcon: metadata.siteIcon, previewImage: metadata.previewImage, - publishedDate: metadata.publishedDate || publishedAt || this._articlePublishedDate, + publishedDate, language: this._getLanguage(metadata.locale || this._languageCode), }; } diff --git a/packages/readabilityjs/test/index.html b/packages/readabilityjs/test/index.html index 22cb8dbef3..e997271df7 100644 --- a/packages/readabilityjs/test/index.html +++ b/packages/readabilityjs/test/index.html @@ -20,6 +20,12 @@ [dom-distiller] +
+ 【财新网】9月26日,汽车服务平台途虎养车正式在港交所主板挂牌上市。途虎养车( 09690.HK )上市发行价为28港元/股,此前公司披露的发行价区间为28港元/股至31港元/股,即实际发行价为区间下限。当日,途虎养车收报29.5港元/股,较发行价涨5.36%,市值为239.6亿港元。 +
+ 途虎养车上市不易。途虎养车2022年1月即在港交所递表,2022年8月、2023年3月两次重新递交上市申请材料,终于在2023年8月23日通过聆讯。 +
+ 推荐进入财新数据库,可随时查阅公司股价走势、结构人员变化等投资信息。 +
文|财新 余聪
+2023年09月26日 17:22
+ + + + 试听 +国内汽车服务市场高度分散,2022年,途虎养车取得汽车服务收入115亿元,市场份额0.9%
+【财新网】9月26日,汽车服务平台途虎养车正式在港交所主板挂牌上市。途虎养车( 09690.HK )上市发行价为28港元/股,此前公司披露的发行价区间为28港元/股至31港元/股,即实际发行价为区间下限。当日,途虎养车收报29.5港元/股,较发行价涨5.36%,市值为239.6亿港元。
+途虎养车上市不易。途虎养车2022年1月即在港交所递表,2022年8月、2023年3月两次重新递交上市申请材料,终于在2023年8月23日通过聆讯。
+登录 后获取已订阅的阅读权限
+ + + + + + +推荐进入财新数据库,可随时查阅公司股价走势、结构人员变化等投资信息。
+责任编辑:屈运栩 | 版面编辑:刘潇(ZN028)
++ 推荐进入财新数据库,可随时查阅公司股价走势、结构人员变化等投资信息。 +
++ 2023/9/26 +
++ 2023/9/25 +
++ 2023/9/26 +
++ +
+The Ezra Klein Show
--
-