1import PageConfig, { getPageConfigByPath } from './page.js' 2import { getPathLang } from '../src/function.js' 3 4Object.keys(PageConfig).forEach(key => { 5 PageConfig[key].allowSiteList = [] 6 if (PageConfig[key].allowSiteB2B) PageConfig[key].allowSiteList.push('b2b') 7 if (PageConfig[key].allowSiteB2B2C) PageConfig[key].allowSiteList.push('b2b2c') 8 if (PageConfig[key].allowSiteB2C) PageConfig[key].allowSiteList.push('b2c') 9 if (PageConfig[key].allowSiteLP) PageConfig[key].allowSiteList.push('lp') 10 if (PageConfig[key].allowSiteHY) PageConfig[key].allowSiteList.push('hy') 11}) 12 13/** å端ç页é¢ç±»åæ å°æ¨¡æ¿ç±»å */ 14const siteTypeToTemplateType = { 1: 'b2b', 11: 'b2b2c', 21: 'b2c', 51: 'b2b', 61: 'b2b2c' } 15 16/** å页è§å */ 17const pagingReg = /_list([0-9]*)$/ 18const detailReg = /_([0-9]*)$/ 19const systemDirReg = /^(inquire|user|coupon_detail|reduction_detail)\/(.*)$/ 20 21/** SystemPage */ 22function checkSystemPage(pageType) { 23 return PageConfig[pageType] ? PageConfig[pageType].code < 200 : true 24} 25 26/** Animat */ 27function checkAnimat(pageType) { 28 return PageConfig[pageType] && PageConfig[pageType].allowAnimat 29} 30 31/** Detail */ 32function checkDetail(pageType) { 33 return PageConfig[pageType] && PageConfig[pageType].isDetail 34} 35 36/** ListContentType */ 37function getListContentType(pageType) { 38 return PageConfig[pageType] && PageConfig[pageType].listContentType 39} 40 41/** è¿å页é¢ç±»åï¼éè¦æ ¹æ®è·¯å¾è§ååæé夿 */ 42function getPageType(pagePath, siteType, pageType = '404') { 43 // æ¿å°æ¸²ææ¨¡æ¿ç±»å 44 const templateType = siteTypeToTemplateType[siteType || 1] 45 // æ¿å°åé¤å页å详æ idä¹åçåºç¡é¡µé¢ç±»å 46 let tempPageType = getBasePageType(pagePath) 47 // å¤çé¦é¡µ 48 if (!tempPageType) tempPageType = 'index' 49 // æ ¹æ®é¡µé¢è·¯å¾å¹é å°é¡µé¢ç±»åï¼å¹¶ä¸è¯¥é¡µé¢ç±»åä¸ç«ç¹ç±»åä¹å¹é 50 if (PageConfig[tempPageType] && PageConfig[tempPageType].allowSiteList.includes(templateType)) pageType = tempPageType 51 // æ ¹æ®å端è¿åç页é¢ç±»åå¹é 52 else if (!PageConfig[pageType] || !PageConfig[pageType].allowSiteList.includes(templateType)) pageType = '404' 53 // è¿å对åºç页é¢ç±»åï¼æ'404' 54 return `${pageType}` 55} 56/** è¿å页é¢code, éè¦æ ¹æ®é¡µé¢ç±»å */ 57function getPageCode(pageType) { 58 return PageConfig[pageType].code 59} 60/** è·ååºæ¬ç页é¢é ç½®ï¼è¿æ²¡å¤çæéçé£ç§ */ 61function getBasePageType(pagePath) { 62 // 廿è¯ç§åç¼ 63 const langReg = `^/${getPathLang(pagePath)}` 64 pagePath = pagePath.replace(new RegExp(langReg), '') 65 // 廿/åç¼ 66 pagePath = pagePath.replace(/^\//, '') 67 // 廿.htmlåç¼ 68 pagePath = pagePath.replace(/\.html$/, '') 69 // ååæ¿çå¤ç 70 if (pagePath === 'doc/privacy_policy' || pagePath === 'doc/terms_and_conditions') { 71 pagePath = pagePath.replace(/\//, '_') 72 } 73 const pageCfg = getPageConfigByPath(pagePath) 74 // 妿å¹é ä¸å°ï¼å°è¯å»æå页åç¼åå¹é
75 if (!PageConfig[pagePath]) pagePath = pagePath.replace(pagingReg, '') 76 // è¿æ¯å¹é ä¸å°ï¼å°è¯å¹é ç³»ç»é¡µ 77 if (!PageConfig[pagePath]) pagePath = pagePath.replace(systemDirReg, '$1') 78 if (pageCfg && pageCfg.pageType) pagePath = pageCfg.pageType 79 // è¿åç»æ 80 return pagePath 81} 82/** è·åurlä¸ç详æ 页id */ 83function getPageId(pagePath) { 84 // é»è®¤ä¸º0 85 let pageId = 0 86 // ä¸å¨é ç½®ä¸ç´æ¥è¿åï¼å¨é ç½®ä¸æç»§ç» 87 if (!PageConfig[getBasePageType(pagePath)]) return pageId 88 // æ¿å°å页åç页é¢è·¯å¾ 89 pagePath = getBasePagePath(pagePath) 90 // å¤ç/ => _ 91 pagePath = pagePath.replace(/\//g, '_') 92 // æ¿å°id 93 pagePath.replace(detailReg, (match, p1) => pageId = parseInt(p1)) 94 // è¿åid 95 return pageId 96} 97/** è·åå½åé¡µæ° */ 98function getPageNumber(pagePath) { 99 // é»è®¤ä¸º1 100 let pageNumber = 1 101 // ä¸å¨é ç½®ä¸ç´æ¥è¿åï¼å¨é ç½®ä¸æç»§ç» 102 if (!PageConfig[getBasePageType(pagePath)]) return pageNumber 103 // 廿.htmlåç¼ 104 pagePath = pagePath.replace(/\.html$/, '') 105 // 廿_one_pageåç¼ 106 pagePath = pagePath.replace(/_one_page$/, '') 107 // æ¿å°number 108 pagePath.replace(pagingReg, (match, p1) => pageNumber = parseInt(p1)) 109 // è¿ånumber 110 return pageNumber 111} 112/** è·åå页åç页é¢è·¯å¾ */ 113function getBasePagePath(pagePath) { 114 // 廿.htmlåç¼ 115 pagePath = pagePath.replace(/\.html$/, '') 116 // 廿_one_pageåç¼ 117 pagePath = pagePath.replace(/_one_page$/, '') 118 return pagePath.replace(pagingReg, '') 119} 120 121export { 122 PageConfig, 123 getPageConfigByPath, 124 checkSystemPage, 125 checkAnimat, 126 checkDetail, 127 getBasePagePath, 128 getPageType, 129 getPageCode, 130 getPageId, 131 getPageNumber, 132 getListContentType, 133}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.