рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рд╡рд┐рд╖рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛
рд▓реБрдореЗрди рд╡рд┐рд╖рдп рд╣реИ, рдпрд╣ рдлрд╝реЙрдиреНрдЯ рд╕реНрд░реЛрдд рд╕реИрдВрд╕ рдкреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХреЛрдИ рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИред рд╕реНрд░реЛрдд рд╕реЗ рдлрд╝реЙрдиреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ - рдирд┐рд╖реНрдХрд░реНрд╖ рджреЗрдЦреЗрдВред
1. OpenType рдХреЗ рд▓рд┐рдП Adobe рдлрд╝реЙрдиреНрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд┐рдЯ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
OpenType рдХреЗ рд▓рд┐рдП Adobe рдлрд╝реЙрдиреНрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд┐рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдХреБрдЫ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреНрд░рд╢рд╛рд╕рдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде
FinishInstallWindows.cmd рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд▓реЙрдЧ рдЗрди рдпрд╛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
2. рдлрд╝реЙрдиреНрдЯ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
GitHub рд╕реЗ рдлрд╝реЙрдиреНрдЯ рд╕реНрд░реЛрдд рд╢рд╛рдЦрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдХрд╣реАрдВ рдЕрдирдкреИрдХ рдХрд░реЗрдВред рдЗрд╕ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдФрд░ рдЧреНрд░реАрдХ рдЕрдХреНрд╖рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рдЕрднреА рддрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред
3. рдЖрд╡рд╢реНрдпрдХ рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВ
рдлрд╝реЙрдиреНрдЯ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╢реИрд▓рд┐рдпрд╛рдБ рд╣реИрдВ, рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рди рдЪреАрдЬрд╝реЛрдВ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред рд▓реНрдпреВрдореЗрди рдереАрдо рдХреА
рдмреВрдЯрд╕реНрдЯреНрд░реИрдк .
css рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдирд╛, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдлреЛрдВрдЯ рдЧреВрдЧрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
@import url("//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic");
рд╣рдо рдЗрд╕ рдкрддреЗ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдПрдХ рд╡рд┐рд╡рд░рдг рдорд┐рд▓рддрд╛ рд╣реИ:
@font-face { font-family: 'Source Sans Pro'; font-style: normal; font-weight: 300; src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/toadOcfmlt9b38dHJxOBGNbE_oMaV8t2eFeISPpzbdE.woff) format('woff'); } @font-face { font-family: 'Source Sans Pro'; font-style: normal; font-weight: 400; src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/ODelI1aHBYDBqgeIAH2zlBM0YzuT7MdOe03otPbuUS0.woff) format('woff'); } @font-face { font-family: 'Source Sans Pro'; font-style: normal; font-weight: 700; src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/toadOcfmlt9b38dHJxOBGFkQc6VGVFSmCnC_l7QZG60.woff) format('woff'); } @font-face { font-family: 'Source Sans Pro'; font-style: italic; font-weight: 400; src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), url(http://themes.googleusercontent.com/static/fonts/sourcesanspro/v7/M2Jd71oPJhLKp0zdtTvoMzNrcjQuD0pTu1za2FULaMs.woff) format('woff'); }
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЪрд╛рд░ рд╢реИрд▓рд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд▓рд╛рдЗрдЯ, рд░реЗрдЧреБрд▓рд░, рдмреЛрд▓реНрдб, рдЗрдЯреИрд▓рд┐рдХред
4. рд╣рдо рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рд╕рдВрдХрд▓рди
Makeotf -r рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрдорд╛рдВрдб рдПрдХ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдХрд░рдВрдЯ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдлреЗрд╕ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдФрд░ рдХрдорд╛рдВрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо PowerShell рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдмреИрдЪ рдореЛрдб рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдлреЙрдиреНрдЯ рдХреЗ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ
build.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рд▓реЗрдВ рдФрд░ рдЙрд╕реА рдЬрдЧрд╣ рдирд╛рдо
build.ps1 рдХреЗ рддрд╣рдд рдирдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВред
$family='SourceSansPro' $romanWeights='Bold', 'Light', 'Regular' $italicWeights='It'
рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
ред \ Build.ps1 рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рдеред рдпрджрд┐ рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд╛ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ PowerShell рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдирд╛ рдиреАрддрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖рд┐рджреНрдз рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░
рд▓рдХреНрд╖реНрдп ред
Otf \ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЪрд╛рд░ .otf рдлрд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдИ
рджреЗрдВрдЧреА ред
5. .wf рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ
Sfnt2woff рдбрд╛рдЙрдирд▓реЛрдб
рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдлрд╝реЙрдиреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рд╣рдо рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ
Convert.ps1 рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
$otfFiles = dir target\otf -Filter *.otf -Name
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ
рд▓рдХреНрд╖реНрдп \ woff \ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж,
рдХрдирд╡рд░реНрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреАред
6. рдлрд╝реЙрдиреНрдЯ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
ASP.NET MVC рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, .woff рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ
рдлреЛрдВрдЯ \ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
Content \ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓
bootstrap.lumen.path.css рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦреЗрдВ:
@font-face { font-family: 'Source Sans Pro'; font-style: normal; font-weight: 300; src: url(/fonts/SourceSansPro-Light.woff) format('woff'); } @font-face { font-family: 'Source Sans Pro'; font-style: normal; font-weight: 400; src: url(/fonts/SourceSansPro-Regular.woff) format('woff'); } @font-face { font-family: 'Source Sans Pro'; font-style: normal; font-weight: 700; src: url(/fonts/SourceSansPro-Bold.woff) format('woff'); } @font-face { font-family: 'Source Sans Pro'; font-style: italic; font-weight: 400; src: url(/fonts/SourceSansPro-It.woff) format('woff'); }
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ
App_Start \ рдмрдВрдбрд▓Config.cs ред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣
bootstrap.lumen.css рд╕реЗ рдХрдо рд╣реЛред
bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/bootstrap.lumen.css", "~/Content/bootstrap.lumen.path.css", "~/Content/site.css"));
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣ рд╕рдм, рд╕рдорд╕реНрдпрд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ - рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдордп рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ
рдЗрдЯреИрд▓рд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИред

рдлрд╝реЙрдиреНрдЯ рдбреЗрд╡рд▓рдкрд░,
рдкреЙрд▓ рд╣рдВрдЯ , рд╕реЗ рдЬрдм рдЗрдЯреИрд▓рд┐рдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрд╛ рдЧрдпрд╛, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдХрд┐рд╕реА рджрд┐рди рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рд╡рд╣ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ рдХрд┐ рдпрд╣ рдХрдм рд╣реЛрдЧрд╛ред
рд╕рдорд╛рдкреНрдд .woff рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред