<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ERPNext自主實施之路 Archives - 成長駭客交流第一站 - HyperGrowths™</title>
	<atom:link href="https://hypergrowths.com/tag/erpnext%E8%87%AA%E4%B8%BB%E5%AF%A6%E6%96%BD%E4%B9%8B%E8%B7%AF/feed/" rel="self" type="application/rss+xml" />
	<link>https://hypergrowths.com/tag/erpnext自主實施之路/</link>
	<description>用SEO內容行銷加速增長? 企業發展遇到增長瓶頸？加入 HyperGrowths，學習突破性增長策略，優化行銷方案，助力企業飛躍式發展</description>
	<lastBuildDate>Sat, 21 Aug 2021 09:01:33 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.5</generator>

<image>
	<url>https://hypergrowths.com/wp-content/uploads/2020/11/cropped-?.png</url>
	<title>ERPNext自主實施之路 Archives - 成長駭客交流第一站 - HyperGrowths™</title>
	<link>https://hypergrowths.com/tag/erpnext自主實施之路/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ERPNext 13 Debian 10 / ubuntu 20 簡易安裝</title>
		<link>https://hypergrowths.com/business-intelligence/erp/31145/topic-382234069/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Sat, 21 Aug 2021 09:01:33 +0000</pubDate>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[ERPNext自主實施之路]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/business-intelligence/erp/31145/topic-382234069/</guid>

					<description><![CDATA[<p>安裝步驟及說明（以下步驟在華為雲耀伺服器1vCPUs &#124; 2GB debian 10 64位 驗證成功，總耗時40分鐘左右） 考慮ubuntu基於debian，命令基本相同，本安裝指南理論上也適用ubuntu.1. 用root登錄系統，開始安裝 更新、升級...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31145/topic-382234069/" data-wpel-link="internal">ERPNext 13 Debian 10 / ubuntu 20 簡易安裝</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">ERPNext 13 Debian 10 / ubuntu 20 簡易安裝</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="余则霖"><meta itemprop="image" content="https://pic2.zhimg.com/v2-a2adfb82828303f5342751689d24d0d3_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/yu-ze-lin-2-9"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p><b>安裝步驟及說明（</b>以下步驟在華為雲耀伺服器1vCPUs | 2GB debian 10 64位 驗證成功，總耗時40分鐘左右）</p>
<p><i>考慮ubuntu基於debian，命令基本相同，本安裝指南理論上也適用ubuntu.</i></p>
<p>1. 用root登錄系統，開始安裝</p>
<p>更新、升級作業系統：</p>
<div class="highlight">
<pre><code class="language-text">apt-get update
apt-get upgrade</code></pre>
</div>
<p>2. 安裝sudo，創建安裝帳號並分配root許可權，ubuntu 自帶sudo，不用單獨安裝</p>
<p>修改[user]為你自定義的用戶，依據提示輸入並確認用戶密碼</p>
<div class="highlight">
<pre><code class="language-text">apt-get install sudo
adduser [USER]
usermod -aG sudo [USER]</code></pre>
</div>
<p>3. 安裝一鍵安裝文本中操作系統級依賴庫</p>
<div class="highlight">
<pre><code class="language-text">apt install git libffi-dev python3-minimal build-essential python3-distutils python3-setuptools python3-pip python3-testresources libssl-dev wkhtmltopdf redis</code></pre>
</div>
<p>4. 修改redis 配置</p>
<div class="highlight">
<pre><code class="language-text">nano /etc/redis/redis.conf</code></pre>
</div>
<p>（搜索 127.0.0.1 ：：1這一行，去掉後面的：：1， ctrl + o再回車保存，ctrl + x退回命令行）</p>
<p>5. 重啟系統</p>
<div class="highlight">
<pre><code class="language-text">reboot</code></pre>
</div>
<p><b> 6. 用上述第2步新創建的系統安裝賬號登錄</b></p>
<div class="highlight">
<pre><code class="language-text">export LC_ALL=C.UTF-8</code></pre>
</div>
<p>7. 下載安裝文稿</p>
<div class="highlight">
<pre><code class="language-text">wget https://raw.githubusercontent.com/frappe/bench/develop/install.py</code></pre>
</div>
<p>8. 執行一鍵安裝腳本，修改 [USER] 為上述安裝帳號，修改[資料庫密碼]，[系統管理員密碼]，以及frappe13（安裝後生成的新目錄）， 視網络下載速度，此步驟耗時較長，如果命令執行過程出錯后，可重複執行。</p>
<div class="highlight">
<pre><code class="language-text">sudo python3 install.py --verbose --production --user [USER] --mariadb-version 10.5 --frappe-branch version-13 --erpnext-branch version-13 --mysql-root-password [数据库密码] --admin-password [系统管理员密码] --bench-name frappe13 --erpnext-repo-url https://gitee.com/qinyanwan/erpnext --frappe-repo-url https://gitee.com/qinyanwan/frappe</code></pre>
</div>
<p>命令行參數說明如下，更多參數請查看 install.py 檔中的parse_commandline_args函數</p>
<div class="highlight">
<pre><code class="language-text">        --production            指定安装脚本install.py安装当前的稳定版，如果需要安装开发版可以使用--develop参数；
    --user                  安装目录的拥有者用户，后续用此用户账号管理系统维护和升级
    --bench-name            安装目录名
    --mysql-root-password   数据库管理员密码
    --admin-password  自动创建的管理员账号密码
    --verbose   显示详细安装过程
    --overwrite  首次出错后，重复执行命令时覆盖之前生成的目录,一般不用此参数，出错后重复执行命令会利用之前已下载或安装过的部分
    --version 指定安装的系统版本，默认安装当前的稳定版 13，version参数可以安装指定版本，比如version-13-beta
    --site  站点名
        --erpnext-repo-url     erpnext代码源，改为国内码云源可解决github下载速度慢问题
        --frappe-repo-url      frappe代码源</code></pre>
</div>
<p>等一段時間後系統返回 「Successfully Installed」即安裝成功</p>
<p>9. 切換到bench目錄後啟動後台任務（可選步驟）</p>
<div class="highlight">
<pre><code class="language-text">cd frappe13
bench enable-scheduler</code></pre>
</div>
<p>10. 切換回官方代碼庫，從官方代碼庫升級（可選步驟）</p>
<div class="highlight">
<pre><code class="language-text">bench remote-reset-url frappe
bench remote-reset-url erpnext
bench update</code></pre>
</div>
<p><b>附註：安裝本人的ebclocal漢化APP及登錄使用</b></p>
<p>1. 獲取漢化APP和安裝到網站（可選步驟）</p>
<div class="highlight">
<pre><code class="language-text">bench get-app --branch master yuzelin/ebclocal
bench install-app ebclocal</code></pre>
</div>
<p>2. 用瀏覽器（推薦 Chrome或Firefox）輸入IP或功能變數名稱，使用使用者名administrator，登錄系統 </p>
<p><b>常見問題</b></p>
<ol>
<li>列印單據或報表轉PDF時，中文顯示亂碼</li>
</ol>
<p>原因是沒有相關中文字體，</p>
<p>解決方法：執行以下命令安裝</p>
<div class="highlight">
<pre><code class="language-text">sudo apt-get install ttf-wqy-zenhei -y
</code></pre>
</div>
<p>2. 從github代碼託管倉庫下載連接超時 "msg"： "Failed to connect to <a href="https://link.zhihu.com/?target=http%3A//github.com/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">GitHub： Where the world builds software</a> at port 443： [Errno 110] Connection timed out"，</p>
<p>解決方法：重新執行命令。</p>
<p>參考了官方論壇貼 <a href="https://link.zhihu.com/?target=https%3A//discuss.erpnext.com/t/tutorial-install-v13-production-on-debian-10-vps-using-easy-install-script-now-includes-setting-up-ssl-certificate/76057" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">[Tutorial] Install v13 Production on Debian 10 VPS - Using "Easy Install" script - Now includes setting up SSL certificate！</a> ，略有修正並增加了國內代碼庫源以解決常見的網络超時問題。</p>
</div>
</div>
</article>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31145/topic-382234069/" data-wpel-link="internal">ERPNext 13 Debian 10 / ubuntu 20 簡易安裝</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ERPNext v13 Ubuntu 20.04 安裝教程</title>
		<link>https://hypergrowths.com/business-intelligence/erp/31144/topic-382212450/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Sat, 21 Aug 2021 09:01:10 +0000</pubDate>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[ERPNext自主實施之路]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/business-intelligence/erp/31144/topic-382212450/</guid>

					<description><![CDATA[<p>步驟如下 1. 準備一台裝好ubuntu20.04的伺服器，本地虛擬機或者VPS皆可，虛擬機的網路要用橋接模式。 Ubuntu 20.04server安裝會順利些，用ssh 工具，如dos 運行命令 ssh root@伺服器ip，putty， secureCRT， Xshell等...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31144/topic-382212450/" data-wpel-link="internal">ERPNext v13 Ubuntu 20.04 安裝教程</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">ERPNext v13 Ubuntu 20.04 安裝教程</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="余则霖"><meta itemprop="image" content="https://pic3.zhimg.com/v2-a2adfb82828303f5342751689d24d0d3_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/yu-ze-lin-2-9"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p>步驟如下</p>
<p>1. 準備一台裝好ubuntu20.04的伺服器，本地虛擬機或者VPS皆可，虛擬機的網路要用橋接模式。 Ubuntu 20.04server安裝會順利些，用ssh 工具，如dos 運行命令 ssh root@伺服器ip，putty， secureCRT， Xshell等登錄伺服器。</p>
<p>2. 設定root密碼，在雲伺服器已設過密碼的可跳過此步驟</p>
<div class="highlight">
<pre><code class="language-text">sudo passwd root</code></pre>
</div>
<p>3. 添加使用者，如果使用現有sudo許可權使用者就可以跳過第3、4步。</p>
<div class="highlight">
<pre><code class="language-text">adduser USERNAME</code></pre>
</div>
<p>   #用户名USERNAME换成自己计划使用的用户名</p>
<p>4. 將使用者設定sudo權限：</p>
<div class="highlight">
<pre><code class="language-text">usermod -aG sudo USERNAME</code></pre>
</div>
<p>   #记得把命令行里的USERNAME改成自己刚设置的用户名</p>
<p>5. 通過ssh登錄root使用者</p>
<p>   #虚拟机、騰訊雲需要先設置將埠22開放才能通過ssh連接</p>
<div class="highlight">
<pre><code class="language-text">vim /etc/ssh/sshd_config</code></pre>
</div>
<p>   按i，移動游標到以下內容修改：w</p>
<p>   #Port 22</p>
<p>   改為</p>
<p>   Port 22</p>
<p>   #PermitRootLogin prohibit-password</p>
<p>   改為</p>
<p>   PermitRootLogin yes</p>
<p>   修改好按ESC，shift+：，輸入wq回車</p>
<p>   重啟服務</p>
<div class="highlight">
<pre><code class="language-text">/etc/init.d/ssh restart</code></pre>
</div>
<p>6. 替換國內鏡像源，下面用的是清華鏡像源，操作如下（root使用者可不輸入sudo）：</p>
<p>   1.備份</p>
<div class="highlight">
<pre><code class="language-text">sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak </code></pre>
</div>
<p>   2.修改</p>
<div class="highlight">
<pre><code class="language-text">sudo vim /etc/apt/sources.list</code></pre>
</div>
<p>   3.按ggVG進行全選，按d進行刪除</p>
<p>   4.將下面源粘貼</p>
<p>   5.按esc，再按shift+：，輸入wq回車（這步是保存退出）</p>
<div class="highlight">
<pre><code class="language-text"># 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源，不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse</code></pre>
</div>
<p class="ztext-empty-paragraph"></p>
<p># 預發佈軟體源，不建議啟用</p>
<p># deb <a href="https://link.zhihu.com/?target=https%3A//mirrors.tuna.tsinghua.edu.cn/ubuntu/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Index of /ubuntu/</a> focal-proposed main restricted universe multiverse</p>
<p># deb-src <a href="https://link.zhihu.com/?target=https%3A//mirrors.tuna.tsinghua.edu.cn/ubuntu/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Index of /ubuntu/</a> focal-proposed main restricted universe multiverse</p>
<p>7. 更新並重啟</p>
<div class="highlight">
<pre><code class="language-text">apt update &amp;&amp; apt upgrade -y &amp;&amp; shutdown -r now</code></pre>
</div>
<p>8. 重新打開SSH連接，並用root登錄，下載node.js</p>
<div class="highlight">
<pre><code class="language-text">curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -</code></pre>
</div>
<p>   #有时候运行完没反应，直接跳回命令輸入，這時候要再運行到出現以下提示</p>
<p>   ## Installing the NodeSource Node.js 12.x repo...</p>
<p>9. 安裝作業系統級依賴</p>
<div class="highlight">
<pre><code class="language-text">apt install -y nodejs mariadb-server-10.3 redis-server python3-pip nginx python3-testresources</code></pre>
</div>
<p> #最新的10.5版本的Mariadb資料庫安裝後會報錯，需要更改預設的資料庫引擎。 建議10.3版本。 ——來自Jason Zhang的文檔，所以我這裡又在Mariadb後面加上了個版本號</p>
<p>10. 用nano編輯my.cnf檔</p>
<div class="highlight">
<pre><code class="language-text">nano /etc/mysql/my.cnf</code></pre>
</div>
<p><b> 將游標移動到最後空白行</b>，複製以下文本內容，ctrl + O，回車確認，ctrl + X返回命令行</p>
<div class="highlight">
<pre><code class="language-text">[mysqld]
character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
[mysql]
default-character-set = utf8mb4</code></pre>
</div>
<p>11. 重啟sql</p>
<div class="highlight">
<pre><code class="language-text">service mysql restart</code></pre>
</div>
<p>12. mysql的安全配置</p>
<div class="highlight">
<pre><code class="language-text">mysql_secure_installation</code></pre>
</div>
<p>第一個輸入資料庫密碼對話框出來的時候，直接敲回車代表沒有密碼，剩下的按照下面選擇：</p>
<p>Enter current password for root (enter for none): </p>
<p>   #这里直接回车</p>
<div class="highlight">
<pre><code class="language-text">Set root password? [Y/n] Y
New password:  #输入数据库密码
Re-enter new password: #重复输入数据库密码
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y</code></pre>
</div>
<p>13. 執行下面命令</p>
<div class="highlight">
<pre><code class="language-text">mysql -u root -p</code></pre>
</div>
<p>輸入上面新設置的資料庫root帳號密碼，進入資料庫命令行，並執行下面的語句</p>
<div class="highlight">
<pre><code class="language-text">USE mysql; 
UPDATE user SET plugin=' ' WHERE user ='root'; 
FLUSH PRIVILEGES;
exit;</code></pre>
</div>
<p>13. 【<b>重要】關閉ssh終端，重新以自己"新創建的使用者名"和密碼登錄</b></p>
<p>15. 安裝yarn</p>
<div class="highlight">
<pre><code class="language-text">sudo npm install -g yarn</code></pre>
</div>
<p>    #保险起见，還需要將剛剛的yarn，node，npm添加運行許可權。 sudo chmod +x /usr/bin/node. 默認有運行許可權。 ——Jason Zhang</p>
<p>    #配置Yarn的源：</p>
<div class="highlight">
<pre><code class="language-text">yarn config get registry  </code></pre>
</div>
<p>查看源， 如果不是淘寶的源就切換為淘寶的源</p>
<div class="highlight">
<pre><code class="language-text">yarn config set registry https://registry.npm.taobao.org
yarn config set sass_binary_site "node-sass Mirror"
yarn config set phantomjs_cdnurl "http://cnpmjs.org/downloads"
yarn config set electron_mirror "electron Mirror"
yarn config set sqlite3_binary_host_mirror "https://foxgis.oss-cn-shanghai.aliyuncs.com/"
yarn config set profiler_binary_host_mirror "node-inspector Mirror"
yarn config set chromedriver_cdnurl "https://cdn.npm.taobao.org/dist/chromedriver"</code></pre>
</div>
<p>16. 查看版本，對照一下，這一步不做也行</p>
<div class="highlight">
<pre><code class="language-text">node -v &amp;&amp; npm -v &amp;&amp; python3 -V &amp;&amp; pip3 -V &amp;&amp; yarn -v</code></pre>
</div>
<p>17. 安裝bench，即erpnext系統的命令行管理工具，類似windows系統的程式管理器</p>
<div class="highlight">
<pre><code class="language-text">sudo pip3 install frappe-bench</code></pre>
</div>
<p>18. 安裝git，下一步bench init可能會報錯缺少git。</p>
<div class="highlight">
<pre><code class="language-text">sudo apt install git</code></pre>
</div>
<p>19. 使用bench命令安裝frappe框架，記得把frappe-bench（下方的version-13後面的名字）改成自己想要的名字，這一步時間比較長，別著急，代碼庫已經加了碼雲地址參數。 如果網路超時失敗，可重新運行該命令，重新運行之前需使用命令 『rm -r frappe-bench』 刪除之前生成的目錄。</p>
<div class="highlight">
<pre><code class="language-text">bench init --frappe-branch version-13 frappe-bench --frappe-path=https://gitee.com/qinyanwan/frappe</code></pre>
</div>
<p>    #下面这段是警告说pip有新版本，可忽略</p>
<p>    WARNING: You are using pip version 21.0.1; however, version 21.1 is available.</p>
<p>    You should consider upgrading via the '/home/frappe/frappe-bench/env/bin/python -m pip install --upgrade pip' command.</p>
<p>20. 進入bench目錄 </p>
<div class="highlight">
<pre><code class="language-text">cd frappe-bench</code></pre>
</div>
<p>21. 新建網站，名字自己取，安裝時會提示輸入資料庫root賬號的密碼， 新網站資料庫及erp系統管理員帳號administator 密碼，其中資料庫root帳號密碼須與上述資料庫安裝時密碼一致，其它密碼自己取 --db-password xxx 也可以命令行參數中直接輸入好密碼,--mariadb-root-password yyyy -- admin-password zzzz</p>
<div class="highlight">
<pre><code class="language-text">bench new-site mysite</code></pre>
</div>
<p>    #新建的站点名为mysite</p>
<p>22. 下載erpnext</p>
<div class="highlight">
<pre><code class="language-text">bench get-app --branch version-13 https://gitee.com/qinyanwan/erpnext</code></pre>
</div>
<p>23. 安裝erpnext</p>
<div class="highlight">
<pre><code class="language-text">bench install-app erpnext</code></pre>
</div>
<p>24. 設置為生產環境，即用supervisorctl管理所有進程，使用nginx做反向代理，USERNAME換成第3步新建的帳號，大功告成</p>
<div class="highlight">
<pre><code class="language-text">sudo bench setup production USERNAME</code></pre>
</div>
<p>提示這個 Do you want to continue？ [y/N]： y 請輸入 Y，回車  </p>
<p>  #重要：設置成生產環境后，不用執行bench start進行啟動!!!</p>
<p>25. 安裝完后可查看一下是否有活動的wokers</p>
<div class="highlight">
<pre><code class="language-text">bench doctor </code></pre>
</div>
<p>    #正常情况下会显示如下：</p>
<div class="highlight">
<pre><code class="language-text">    -----Checking scheduler status-----
    Scheduler disabled for erpnext
    Scheduler inactive for erpnext
    Workers online: 3</code></pre>
</div>
<p>    -----erpnext Jobs-----</p>
<p>26. 以上完成後查看一下安裝了哪些app </p>
<div class="highlight">
<pre><code class="language-text"> bench version </code></pre>
</div>
<p>    正常會顯示以下兩個app</p>
<div class="highlight">
<pre><code class="language-text">    erpnext 13.x.x
    frappe 13.x.x</code></pre>
</div>
<p>27. 如果是虛似機安裝，需要防火牆入站打開80埠。</p>
<div class="highlight">
<pre><code class="language-text">    ufw allow 80
    sudo ufw status verbose
    #打开后显示如下：
    root@erpnext:~# ufw allow 80
    Rule added
    Rule added (v6)
    root@erpnext:~# sudo ufw status verbose
    Status: active
    Logging: on (low)
    Default: deny (incoming), allow (outgoing), deny (routed)
    New profiles: skip
    To                         Action      From
    --                         ------      ----
    22/tcp                     ALLOW IN    Anywhere                  
    22                         ALLOW IN    Anywhere                  
    80                         ALLOW IN    Anywhere                  
    22/tcp (v6)                ALLOW IN    Anywhere (v6)             
    22 (v6)                    ALLOW IN    Anywhere (v6)             
    80 (v6)                    ALLOW IN    </code></pre>
</div>
<p>28. 阿裡雲伺服器要在安全組裡添加80的入站埠號。</p>
<p>    您將需要在ERPNext伺服器上開啟以下埠：</p>
<p>    80/tcp and 443/tcp for HTTP and HTTPS respectively</p>
<p>    HTTP和HTTPS分別為80/tcp和443/tcp</p>
<p>    3306/tcp for MariaDB connection (recommended only if you need remote access to database)</p>
<p>    3306/tcp用於MariaDB連接（僅在需要遠端存取資料庫時才建議使用）</p>
<p>    143/tcp and 25/tcp for IMAP and STMP respectively</p>
<p>    IMAP和STMP分別為143/tcp和25/tcp</p>
<p>    22/tcp for SSH (if you have not already enabled OpenSSH in your UFW settings)</p>
<p>    SSH 22/tcp （如果尚未在UFW設置中啟用OpenSSH ）</p>
<p>    8000/tcp for testing your platform before deploying to production</p>
<p>    8000/tcp用於在部署到生產環境之前測試平臺  </p>
<p>    #要一次打开多个端口，可以使用以下命令：</p>
<p>    sudo ufw allow 22,25,143,80,443,3306,8000/tcp</p>
<p>    sudo ufw允許22，25，143，80，443，3306，8000 / tcp</p>
<p>    現在確認防火牆的狀態：</p>
<p>    sudo ufw status</p>
<p><b>附註：安裝ebclocal漢化APP</b></p>
<p>1. 獲取APP</p>
<div class="highlight">
<pre><code class="language-text">bench get-app --branch master https://gitee.com/yuzelin/ebclocal</code></pre>
</div>
<p>2. 安裝APP</p>
<div class="highlight">
<pre><code class="language-text">bench install-app ebclocal </code></pre>
</div>
<p>3. 用瀏覽器（推薦 Chrome或Firefox）輸入IP或功能變數名稱，登錄系統，使用者名administrator，密碼是第21步admin-password密碼。</p>
<p><b>常見問題</b></p>
<p>1. wkhtmltopdf安裝時出現字體庫依賴無法安裝等錯誤 參考了這個<a href="https://link.zhihu.com/?target=https%3A//askubuntu.com/questions/604029/dependency-problems-with-wkhtmltopdf-when-trying-to-install-latest-version" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"><span class="invisible">https://</span><span class="visible">askubuntu.com/questions</span><span class="invisible">/604029/dependency-problems-with-wkhtmltopdf-when-trying-to-install-latest-version</span></a>，最後是以下命令解決了 </p>
<div class="highlight">
<pre><code class="language-text">sudo apt-get -f install</code></pre>
</div>
<p>2. 透過列印轉PDF時出現亂碼 參考這個帖子<a href="https://link.zhihu.com/?target=https%3A//www.taodudu.cc/news/show-1772808.html" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"><span class="invisible">https://www.</span> <span class="visible">taodudu.cc/news/show-17</span><span class="invisible">72808.html</span></a>，用以下命令安裝字體</p>
<p>   sudo apt-get install ttf-wqy-zenhei -y</p>
<p>   sudo apt-get install ttf-wqy-microhei -y</p>
<p>#### Ubuntu20.04 安裝列印wkhtmltopdf 庫</p>
<p>1、先下載適合我們系統的安裝包並進行安裝：</p>
<p>wget "<a href="https://link.zhihu.com/?target=https%3A//github.com/wkhtmltopdf/packaging/releases/download/0.12.6-" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"><span class="invisible">https://</span><span class="visible">github.com/wkhtmltopdf/</span><span class="invisible">packaging/releases/download/0.12.6-</span></a></p>
<p>1/wkhtmltox_0.12.6-1.focal_amd64.deb" -O /tmp/wkhtml.deb</p>
<p>2、下一步進行安裝</p>
<div class="highlight">
<pre><code class="language-text">sudo dpkg -i /tmp/wkhtml.deb</code></pre>
</div>
<p>3、這時可能會顯示缺少依賴的錯誤，以下命令可解決這一問題：</p>
<div class="highlight">
<pre><code class="language-text">sudo apt -f install</code></pre>
</div>
<p>4、現在，我們可以檢查wkhtmltopdf 庫是否正確安裝並確認是否為所需版本：</p>
<div class="highlight">
<pre><code class="language-text">wkhtmltopdf –version</code></pre>
</div>
<p>##### 顯示wkhtmltopdf 0.12.6 （with patched qt）即是正確版本</p>
<p>其他注意：</p>
<div class="highlight">
<pre><code class="language-text">apt install wkhtmltopdf</code></pre>
</div>
<p>##### 這條命令國內阿裡雲源自動安裝版本0.12.5，非patched qt 版本，erpnext 不列印頁面頭部和底部。</p>
<p>如果wkhtmltopdf 庫不是我們需要的版本，應對其進行卸載，命令如下：</p>
<div class="highlight">
<pre><code class="language-text">sudo apt remove --purge wkhtmltopdf</code></pre>
</div>
</div>
</div>
</article>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31144/topic-382212450/" data-wpel-link="internal">ERPNext v13 Ubuntu 20.04 安裝教程</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ERPNext的翻譯機制</title>
		<link>https://hypergrowths.com/business-intelligence/erp/31128/topic-374917930/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Sat, 21 Aug 2021 08:59:49 +0000</pubDate>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[ERPNext自主實施之路]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/business-intelligence/erp/31128/topic-374917930/</guid>

					<description><![CDATA[<p>使用者登錄系統時獲取全域翻譯（字典），1.1 獲取以下待翻譯文本（參考translate.get_dict fortype=="boot"） 遍歷已安裝app目錄獲取代碼檔（'.py'， '.html'， '.js'， '.vue...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31128/topic-374917930/" data-wpel-link="internal">ERPNext的翻譯機制</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">ERPNext的翻譯機制</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="余则霖"><meta itemprop="image" content="https://pic3.zhimg.com/v2-a2adfb82828303f5342751689d24d0d3_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/yu-ze-lin-2-9"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<ol>
<li>用戶登錄系統時獲取全域翻譯（字典），</li>
</ol>
<p>1.1 獲取以下待翻譯文本（參考translate.get_dict fortype=="boot"）</p>
<ul>
<li>遍曆已安裝app目錄獲取代碼檔（'.py'， '.html'， '.js'， '.vue'）中翻譯函數（py： _<i>（）， js： _</i>_（））的第一個參數</li>
<li>從資料庫表中獲取一些全域共用訊息（編號、名稱），如左側導航功能表，單據類型，報表，角色，模組，工作區，初始化嚮導，</li>
</ul>
<p>1.2 載入各app translations目錄下的目標語言翻譯csv文本檔（如zh.csv）為一個英文為鍵，翻譯文本為值的字典，如{『PO』：『採購訂單』}， 遍歷時以app安裝順序（參考 translate.load_lang），相同詞條，後安裝APP的內容覆蓋前面的，所以最新安裝的自定義APP中的zh.csv內容會覆蓋標準app 如frappe，erpnext中的相同詞條，此步驟結果會被緩存</p>
<p>1.3 第1步的待翻譯文本從上述字典中獲取翻譯內容，產生待返回翻譯字典</p>
<p>1.4 從app中定義的翻譯勾子程式中獲取翻譯內容，添加或更新待返回翻譯字典</p>
<p>1.5 從資料庫獲取使用者翻譯表的全部內容，添加或更新待返回翻譯字典</p>
<p>1.6 返回翻譯字典到前端網頁，載入（添加或更新）到frappe._message公用變數</p>
<p>1.7 js 檔案中的翻譯函數_<i>（'待翻譯文本'） 基於frappe._message字典獲取翻譯結果</i></p>
<p class="ztext-empty-paragraph"></p>
<p><i>2. 獲取具體頁面（單據類型，報表，網頁）翻譯內容</i></p>
<p><i>除第1小步的獲取待翻譯文本是針對具體的頁面物件（單據類型、報表、網頁）之外，其它步驟同上述boot.</i></p>
<p><i>常見不能翻譯的情況</i></p>
<ol>
<li><i>代碼中未調用翻譯函數</i></li>
<li><i>翻譯函數第一個參數是變數（動態文字）</i></li>
<li><i>翻譯詞條與源文不同</i></li>
<ol>
<li><i>原文本首或尾有空格</i></li>
<li><i>原文本是含花括號{0}變數的，翻譯詞條是固定字串</i></li>
<li><i>原文本中含特殊字元，如回車換行，翻譯詞條沒換行</i></li>
</ol>
<li><i>代碼中待翻譯文本未正確獲取</i></li>
<li><i>顯示內容屬於第三方控件，如熱力圖，甘特圖，數據表</i></li>
</ol>
<p><i>常見翻譯錯誤</i></p>
<ol>
<li><i>一詞多義，如commit在預算管理中是承諾，在資料庫操作時是提交</i></li>
</ol>
</div>
</div>
</article>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31128/topic-374917930/" data-wpel-link="internal">ERPNext的翻譯機制</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ERPNext 應用開發新手入門教程-2</title>
		<link>https://hypergrowths.com/business-intelligence/erp/31126/topic-371518319/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Sat, 21 Aug 2021 08:59:40 +0000</pubDate>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[ERPNext自主實施之路]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/business-intelligence/erp/31126/topic-371518319/</guid>

					<description><![CDATA[<p>ERPNext 應用開發新手入門教程-2</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31126/topic-371518319/" data-wpel-link="internal">ERPNext 應用開發新手入門教程-2</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">ERPNext 應用開發新手入門教程-2</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="余则霖"><meta itemprop="image" content="https://pic2.zhimg.com/v2-a2adfb82828303f5342751689d24d0d3_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/yu-ze-lin-2-9"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p>ERPNext 應用開發新手入門教程-2</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-aadb8fde2a387481ac8b6727fcb7d4fa_r.jpg" data-caption="" data-size="normal" data-rawwidth="1130" data-rawheight="665" class="origin_image zh-lightbox-thumb" width="1130" data-original="https://pic3.zhimg.com/v2-aadb8fde2a387481ac8b6727fcb7d4fa_b.jpg" title="v2-aadb8fde2a387481ac8b6727fcb7d4fa_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-aadb8fde2a387481ac8b6727fcb7d4fa_r.jpg" data-caption="" data-size="normal" data-rawwidth="1130" data-rawheight="665" class="origin_image zh-lightbox-thumb lazy" width="1130" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1130'%20height='665'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-aadb8fde2a387481ac8b6727fcb7d4fa_b.jpg" title="v2-aadb8fde2a387481ac8b6727fcb7d4fa_r"></figure>
</div>
</div>
</article>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31126/topic-371518319/" data-wpel-link="internal">ERPNext 應用開發新手入門教程-2</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ERPNext 應用開發新手入門教程</title>
		<link>https://hypergrowths.com/business-intelligence/erp/31124/topic-371250811/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Sat, 21 Aug 2021 08:59:27 +0000</pubDate>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[ERPNext自主實施之路]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/business-intelligence/erp/31124/topic-371250811/</guid>

					<description><![CDATA[<p>官網教程： https://frappeframework.com/docs/user/en/tutorial，中文解讀，實操演示</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31124/topic-371250811/" data-wpel-link="internal">ERPNext 應用開發新手入門教程</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">ERPNext 應用開發新手入門教程</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="余则霖"><meta itemprop="image" content="https://pic1.zhimg.com/v2-a2adfb82828303f5342751689d24d0d3_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/yu-ze-lin-2-9"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p>官網教程：<a href="https://link.zhihu.com/?target=https%3A//frappeframework.com/docs/user/en/tutorial" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"><span class="invisible">https://</span><span class="visible">frappeframework.com/doc</span><span class="invisible">s/user/en/tutorial</span></a>，中文解讀，實操演示</p>
</div>
</div>
</article>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31124/topic-371250811/" data-wpel-link="internal">ERPNext 應用開發新手入門教程</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ERPNext用戶級腳本案例解析： 如何通過腳本統計專案相關採購成本</title>
		<link>https://hypergrowths.com/business-intelligence/erp/31115/topic-371236363/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Sat, 21 Aug 2021 08:58:56 +0000</pubDate>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[ERPNext自主實施之路]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/business-intelligence/erp/31115/topic-371236363/</guid>

					<description><![CDATA[<p>背景與問題 希望在專案表單中顯示與專案關聯總採購訂單費用。 使用者自己的嘗試 有好幾個問題，就不點評了。 參考解決方案1.通過定製為專案單據類型新增總採購成本字段 2.第一版：為專案單據類型新增兩個單據事件（...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31115/topic-371236363/" data-wpel-link="internal">ERPNext用戶級腳本案例解析： 如何通過腳本統計專案相關採購成本</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">ERPNext用戶級腳本案例解析： 如何通過腳本統計專案相關採購成本</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="余则霖"><meta itemprop="image" content="https://pic1.zhimg.com/v2-a2adfb82828303f5342751689d24d0d3_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/yu-ze-lin-2-9"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p><b>背景與問題</b><br />希望在專案表單中顯示與專案關聯總採購訂單費用。</p>
<p><b>使用者自己的嘗試</b></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-d4fa0a9bac295566783cd6b1e90d15a2_r.jpg" data-caption="" data-size="normal" data-rawwidth="818" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="818" data-original="https://pic3.zhimg.com/v2-d4fa0a9bac295566783cd6b1e90d15a2_b.jpg" title="v2-d4fa0a9bac295566783cd6b1e90d15a2_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-d4fa0a9bac295566783cd6b1e90d15a2_r.jpg" data-caption="" data-size="normal" data-rawwidth="818" data-rawheight="600" class="origin_image zh-lightbox-thumb lazy" width="818" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='818'%20height='600'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-d4fa0a9bac295566783cd6b1e90d15a2_b.jpg" title="v2-d4fa0a9bac295566783cd6b1e90d15a2_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p>有好幾個問題，就不點評了。</p>
<p><b>參考解決方案</b></p>
<p>1.通過定製為專案單據類型新增總採購成本欄位</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-55dee130338713b765c676ddee531e69_r.jpg" data-caption="" data-size="normal" data-rawwidth="1568" data-rawheight="466" class="origin_image zh-lightbox-thumb" width="1568" data-original="https://pic2.zhimg.com/v2-55dee130338713b765c676ddee531e69_b.jpg" title="v2-55dee130338713b765c676ddee531e69_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-55dee130338713b765c676ddee531e69_r.jpg" data-caption="" data-size="normal" data-rawwidth="1568" data-rawheight="466" class="origin_image zh-lightbox-thumb lazy" width="1568" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1568'%20height='466'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-55dee130338713b765c676ddee531e69_b.jpg" title="v2-55dee130338713b765c676ddee531e69_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p>2.第一版：為專案單據類型新增兩個單據事件（提交后與取消后）內容相同的python腳本</p>
<div class="highlight">
<pre><code class="language-text">for po_item in doc.items:
    po_cost = frappe.get_list('Purchase Order', 
                                fields = 'sum(grand_total)',
                                filters = {'project': po_item.project, 'docstatus': 1},
                                as_list = 1)[0][0]
    if po_cost:
        frappe.db.set_value('Project',po_item.project, 'total_po_cost', po_cost)</code></pre>
</div>
<p>文稿說明：</p>
<ul>
<li>遍歷採購訂單明細行，</li>
<li>通過get_list函數取滿足條件（專案等於當前採購訂單行的專案字段，採購訂單狀是已提交），採購金額總計（sum），返回類型為清單中套清單，最後取出匯總金額[0][0]</li>
<li>如果有匯總金額返回</li>
<li>更新到專案中的採購成本欄位</li>
</ul>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-b8a10aa7cbb17bf53b10db13228d27cc_r.jpg" data-caption="" data-size="normal" data-rawwidth="1550" data-rawheight="829" class="origin_image zh-lightbox-thumb" width="1550" data-original="https://pic1.zhimg.com/v2-b8a10aa7cbb17bf53b10db13228d27cc_b.jpg" title="v2-b8a10aa7cbb17bf53b10db13228d27cc_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-b8a10aa7cbb17bf53b10db13228d27cc_r.jpg" data-caption="" data-size="normal" data-rawwidth="1550" data-rawheight="829" class="origin_image zh-lightbox-thumb lazy" width="1550" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1550'%20height='829'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-b8a10aa7cbb17bf53b10db13228d27cc_b.jpg" title="v2-b8a10aa7cbb17bf53b10db13228d27cc_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-1fcdf59ddea16963f91e8ac5411b313a_r.jpg" data-caption="" data-size="normal" data-rawwidth="1549" data-rawheight="835" class="origin_image zh-lightbox-thumb" width="1549" data-original="https://pic3.zhimg.com/v2-1fcdf59ddea16963f91e8ac5411b313a_b.jpg" title="v2-1fcdf59ddea16963f91e8ac5411b313a_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-1fcdf59ddea16963f91e8ac5411b313a_r.jpg" data-caption="" data-size="normal" data-rawwidth="1549" data-rawheight="835" class="origin_image zh-lightbox-thumb lazy" width="1549" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1549'%20height='835'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-1fcdf59ddea16963f91e8ac5411b313a_b.jpg" title="v2-1fcdf59ddea16963f91e8ac5411b313a_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p>第二版： 考慮到專案是採購訂單行而非訂單頭上，實際上很可能不同採購訂單行分派相同專案，以上代碼每一行執行一次，相同專案會重複執行。 改進版代碼如下</p>
<div class="highlight">
<pre><code class="language-text">projects = {po_item.project for po_item in doc.items}
for project in projects:
    po_cost = frappe.get_list('Purchase Order', 
                                fields = 'sum(grand_total)',
                                filters = {'project': project, 'docstatus': 1},
                                as_list = 1)[0][0]
    frappe.db.set_value('Project',project, 'total_po_cost', po_cost or 0)</code></pre>
</div>
<p>簡要說明，第一行是用清單解析抓取不重複的項目號清單（集合）。<br />分享時提到用括弧（）作清單解析返回沒有重複項的集合是不正確的，括號返回的是元組，應該用花括號{}，以上代碼已修正。 謝謝參與分享的高手指出以上錯誤。</p>
<p><b>效果</b></p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-35c7ca9fc6e6f47b72c4ce1bf01184ca_r.jpg" data-caption="" data-size="normal" data-rawwidth="1317" data-rawheight="613" class="origin_image zh-lightbox-thumb" width="1317" data-original="https://pic3.zhimg.com/v2-35c7ca9fc6e6f47b72c4ce1bf01184ca_b.jpg" title="v2-35c7ca9fc6e6f47b72c4ce1bf01184ca_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-35c7ca9fc6e6f47b72c4ce1bf01184ca_r.jpg" data-caption="" data-size="normal" data-rawwidth="1317" data-rawheight="613" class="origin_image zh-lightbox-thumb lazy" width="1317" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1317'%20height='613'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-35c7ca9fc6e6f47b72c4ce1bf01184ca_b.jpg" title="v2-35c7ca9fc6e6f47b72c4ce1bf01184ca_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p>小提示，採購訂單提交或取消后，跳轉回專案表單刷新瀏覽器成本字段值才會更新。</p>
<p><b>其他思考</b> ：<br />是否可以用用戶端腳本實現，需要考慮哪些問題？ 與python腳本實現對比有啥優缺點？</p>
<p>以上伺服器端實現方式是系統標準功能的實現方式，即關聯了專案的單據提交時，自動更新專案上的統計字段，此方式好處是統計值保存在專案單據（資料庫表）中了，表單，清單及報表查詢時該字段都有值。 不足是原有歷史採購訂單的舊專案，無新採購訂單提交或舊採購訂單取消時，不會觸發以上代碼，變通的做法是創建一個虛擬採購訂單提交再取消觸發程序執行。</p>
<p>如果用戶端JS實現，類似計算欄位，在每次打開專案表單（詳情）時計算。 可解決舊項目問題，但清單或報表中該值不會更新。<br />用戶端實現方式參考</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-05b0f1dfaffad4445e2afdcfa14e4304_r.jpg" data-caption="" data-size="normal" data-rawwidth="1541" data-rawheight="744" class="origin_image zh-lightbox-thumb" width="1541" data-original="https://pic1.zhimg.com/v2-05b0f1dfaffad4445e2afdcfa14e4304_b.jpg" title="v2-05b0f1dfaffad4445e2afdcfa14e4304_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-05b0f1dfaffad4445e2afdcfa14e4304_r.jpg" data-caption="" data-size="normal" data-rawwidth="1541" data-rawheight="744" class="origin_image zh-lightbox-thumb lazy" width="1541" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1541'%20height='744'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-05b0f1dfaffad4445e2afdcfa14e4304_b.jpg" title="v2-05b0f1dfaffad4445e2afdcfa14e4304_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p><b>常見問題</b><br />fields參數寫成這樣就會報下面的錯，這種寫法在py代碼里是可以的<br />fields:"sum(grand_total)",</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-c4941ff85220a314aae6e107ca42425a_r.jpg" data-caption="" data-size="normal" data-rawwidth="624" data-rawheight="171" class="origin_image zh-lightbox-thumb" width="624" data-original="https://pic3.zhimg.com/v2-c4941ff85220a314aae6e107ca42425a_b.jpg" title="v2-c4941ff85220a314aae6e107ca42425a_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-c4941ff85220a314aae6e107ca42425a_r.jpg" data-caption="" data-size="normal" data-rawwidth="624" data-rawheight="171" class="origin_image zh-lightbox-thumb lazy" width="624" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='624'%20height='171'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-c4941ff85220a314aae6e107ca42425a_b.jpg" title="v2-c4941ff85220a314aae6e107ca42425a_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p>filter參數寫成這樣filters：{'project'： project， 'docstatus'： 1} python後台可運行，通過js rest調用會出以下錯誤，系統程式對外部調用參數檢查邏輯不完善，沒考慮到內部支援子表單字段直接作為篩選條件。</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-d4a34b0f79db1871b1520f40491d49f7_r.jpg" data-caption="" data-size="normal" data-rawwidth="624" data-rawheight="135" class="origin_image zh-lightbox-thumb" width="624" data-original="https://pic4.zhimg.com/v2-d4a34b0f79db1871b1520f40491d49f7_b.jpg" title="v2-d4a34b0f79db1871b1520f40491d49f7_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-d4a34b0f79db1871b1520f40491d49f7_r.jpg" data-caption="" data-size="normal" data-rawwidth="624" data-rawheight="135" class="origin_image zh-lightbox-thumb lazy" width="624" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='624'%20height='135'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-d4a34b0f79db1871b1520f40491d49f7_b.jpg" title="v2-d4a34b0f79db1871b1520f40491d49f7_r"></figure>
</div>
</div>
</article>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31115/topic-371236363/" data-wpel-link="internal">ERPNext用戶級腳本案例解析： 如何通過腳本統計專案相關採購成本</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ERPNext 低代碼開發平臺中battery included 自帶電池的概念解析</title>
		<link>https://hypergrowths.com/business-intelligence/erp/31114/topic-371234129/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Sat, 21 Aug 2021 08:58:37 +0000</pubDate>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[ERPNext自主實施之路]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/business-intelligence/erp/31114/topic-371234129/</guid>

					<description><![CDATA[<p>ERPNext作為一款元數據驅動，自帶電池的低代碼信息化平臺，本視頻嘗試解釋了此概念。</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31114/topic-371234129/" data-wpel-link="internal">ERPNext 低代碼開發平臺中battery included 自帶電池的概念解析</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">ERPNext 低代碼開發平臺中battery included 自帶電池的概念解析</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="余则霖"><meta itemprop="image" content="https://pica.zhimg.com/v2-a2adfb82828303f5342751689d24d0d3_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/yu-ze-lin-2-9"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p>ERPNext作為一款元數據驅動，自帶電池的低代碼訊息化平臺，本視頻嘗試解釋了此概念。</p>
</div>
</div>
</article>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31114/topic-371234129/" data-wpel-link="internal">ERPNext 低代碼開發平臺中battery included 自帶電池的概念解析</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>降低中小企業實施ERP的門檻，用得了，用得上，用得好ERPNext</title>
		<link>https://hypergrowths.com/business-intelligence/erp/31051/topic-341294204/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Sat, 21 Aug 2021 08:55:24 +0000</pubDate>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[ERPNext自主實施之路]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/business-intelligence/erp/31051/topic-341294204/</guid>

					<description><![CDATA[<p>新年第一天開個頭，正式開始在國內推廣優秀的開源ERP產品ERPNext. 本貼將持續發佈ERPNext從安裝，實施到運維相關文檔，切實助力中小企業用得了，用得上，用得好ERPNext 核心主流程圖 採購主流程 銷售主流程 生產主...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31051/topic-341294204/" data-wpel-link="internal">降低中小企業實施ERP的門檻，用得了，用得上，用得好ERPNext</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">降低中小企業實施ERP的門檻，用得了，用得上，用得好ERPNext</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="余则霖"><meta itemprop="image" content="https://pic2.zhimg.com/v2-a2adfb82828303f5342751689d24d0d3_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/yu-ze-lin-2-9"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p>新年第一天開個頭，正式開始在國內推廣優秀的開源ERP產品ERPNext.</p>
<p>本貼將持續發佈ERPNext從安裝，實施到運維相關文檔，切實助力中小企業用得了，用得上，用得好ERPNext</p>
<p>核心主流程圖</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-52a7a145671758e2aed7bff4e02a6ca8_r.jpg" data-caption="" data-size="normal" data-rawwidth="1236" data-rawheight="746" class="origin_image zh-lightbox-thumb" width="1236" data-original="https://pic1.zhimg.com/v2-52a7a145671758e2aed7bff4e02a6ca8_b.jpg" title="v2-52a7a145671758e2aed7bff4e02a6ca8_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-52a7a145671758e2aed7bff4e02a6ca8_r.jpg" data-caption="" data-size="normal" data-rawwidth="1236" data-rawheight="746" class="origin_image zh-lightbox-thumb lazy" width="1236" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1236'%20height='746'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-52a7a145671758e2aed7bff4e02a6ca8_b.jpg" title="v2-52a7a145671758e2aed7bff4e02a6ca8_r"></figure>
<p>採購主流程</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-35ea5775e306e402e17a51d82ab40d35_r.jpg" data-caption="" data-size="normal" data-rawwidth="1235" data-rawheight="471" class="origin_image zh-lightbox-thumb" width="1235" data-original="https://pic2.zhimg.com/v2-35ea5775e306e402e17a51d82ab40d35_b.jpg" title="v2-35ea5775e306e402e17a51d82ab40d35_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-35ea5775e306e402e17a51d82ab40d35_r.jpg" data-caption="" data-size="normal" data-rawwidth="1235" data-rawheight="471" class="origin_image zh-lightbox-thumb lazy" width="1235" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1235'%20height='471'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-35ea5775e306e402e17a51d82ab40d35_b.jpg" title="v2-35ea5775e306e402e17a51d82ab40d35_r"></figure>
<p>銷售主流程</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-f196364efc256f048e424549a8bd750b_r.jpg" data-caption="" data-size="normal" data-rawwidth="1252" data-rawheight="488" class="origin_image zh-lightbox-thumb" width="1252" data-original="https://pic4.zhimg.com/v2-f196364efc256f048e424549a8bd750b_b.jpg" title="v2-f196364efc256f048e424549a8bd750b_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-f196364efc256f048e424549a8bd750b_r.jpg" data-caption="" data-size="normal" data-rawwidth="1252" data-rawheight="488" class="origin_image zh-lightbox-thumb lazy" width="1252" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1252'%20height='488'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-f196364efc256f048e424549a8bd750b_b.jpg" title="v2-f196364efc256f048e424549a8bd750b_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p>生產主流程</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-57057765586c24a3356a8df8d49b83ea_r.jpg" data-caption="" data-size="normal" data-rawwidth="1185" data-rawheight="370" class="origin_image zh-lightbox-thumb" width="1185" data-original="https://pic3.zhimg.com/v2-57057765586c24a3356a8df8d49b83ea_b.jpg" title="v2-57057765586c24a3356a8df8d49b83ea_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-57057765586c24a3356a8df8d49b83ea_r.jpg" data-caption="" data-size="normal" data-rawwidth="1185" data-rawheight="370" class="origin_image zh-lightbox-thumb lazy" width="1185" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1185'%20height='370'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-57057765586c24a3356a8df8d49b83ea_b.jpg" title="v2-57057765586c24a3356a8df8d49b83ea_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p>庫存主流程</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-b6593f5ffc360c2aa6e0e6dde88438e8_r.jpg" data-caption="" data-size="normal" data-rawwidth="893" data-rawheight="639" class="origin_image zh-lightbox-thumb" width="893" data-original="https://pic1.zhimg.com/v2-b6593f5ffc360c2aa6e0e6dde88438e8_b.jpg" title="v2-b6593f5ffc360c2aa6e0e6dde88438e8_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/08/v2-b6593f5ffc360c2aa6e0e6dde88438e8_r.jpg" data-caption="" data-size="normal" data-rawwidth="893" data-rawheight="639" class="origin_image zh-lightbox-thumb lazy" width="893" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='893'%20height='639'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-b6593f5ffc360c2aa6e0e6dde88438e8_b.jpg" title="v2-b6593f5ffc360c2aa6e0e6dde88438e8_r"></figure>
</div>
</div>
</article>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/business-intelligence/erp/31051/topic-341294204/" data-wpel-link="internal">降低中小企業實施ERP的門檻，用得了，用得上，用得好ERPNext</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
