1
0

Add C# pages.

This commit is contained in:
Kevin Matsubara 2024-09-22 17:57:12 +02:00
parent cb36f9d948
commit 40df538cc6
8 changed files with 114 additions and 9 deletions

View File

@ -44,7 +44,7 @@ import JapanesePage from './Pages/Japan/JapanesePage';
import EquipmentPage from './Pages/Radio/equipmentPage';
import { languages, getLanguage } from './Language/Language';
import { elmRoutes, japaneseRoutes } from './Routers';
import { japaneseRoutes, programmingLanguageRoutes } from './Routers';
function App() {
const language = getLanguage();
@ -57,6 +57,8 @@ function App() {
'software': <SoftwareMain />,
};
const fieldDaysRoutes = languages.map(lang => {
const dates = ['20231111', '20231230', '20240121'];
return dates.map(date => {
@ -66,6 +68,14 @@ function App() {
});
}).flat();
const componentRoutes = languages.map(lang => {
const components = ['diode'];
return components.map(component => {
const path = `/${lang}/radio/component/${component}`;
return <Route key={`${lang}-${component}`} exact path={path} element={<Component component={component} />} />;
});
}).flat();
const equipmentRoutes = languages.map(lang => {
const equipments = [
{
@ -116,7 +126,8 @@ function App() {
{generatedRoutes}
{/* Software */}
{elmRoutes}
{programmingLanguageRoutes}
<Route exact path='/software/dxp-development' element={<DXPDevelopment />}></Route>
<Route exact path='/software/configuration-automation' element={<ConfigAutomation />}></Route>
<Route exact path='/software/wifi-prototype' element={<WifiPrototype />}></Route>

View File

@ -15,7 +15,10 @@ const SoftwareMain = () => {
<hr />
<h2>{getString('code_pages')}</h2>
<p>{getString('code_pages_intro')}</p>
<a href={'/' + language + '/software/elm/'}>Elm</a>
<ul>
<li><a href={'/' + language + '/software/csharp/'}>C#</a></li>
<li><a href={'/' + language + '/software/elm/'}>Elm</a></li>
</ul>
<hr />
<h2>{getString('education')}</h2>

View File

@ -0,0 +1,16 @@
import React from 'react';
import Breadcrumbs from '../../../UI/Breadcrumbs'
import MarkdownPage from '../../markdownPage'
const CSharpPage = ({ mdPath }) => {
return (
<article className='main-page'>
<Breadcrumbs separator=' > ' path="software/csharp">
{['software', 'c#']}
</Breadcrumbs>
<MarkdownPage md={mdPath} />
</article>
)
}
export default CSharpPage;

View File

@ -0,0 +1,6 @@
## C#
#### Basics
* [types](./types)
* [strings](./strings)

View File

@ -0,0 +1,49 @@
## Strings
#### Verbatim string with @:
Preserves whitespace and characters like '\' do not need to be escaped.
```c#
Console.WriteLine(@" c:\source\repos
(this is where your code goes)");
```
Output:
```
> c:\source\repos
> (this is where your code goes)
```
#### Escaped Unicode
Use the **\u** plus a four-character code to represent Unicode characters (UTF-16) in a string.
[Japanese UTF-16 table](http://www.rikai.com/library/kanjitables/kanji_codes.unicode.shtml)
```c#
Console.WriteLine("\u3053\u3093\u306B\u3061\u306F World!");
```
Output (UTF-16):
```
> こんにちは World!
```
```c#
// To generate Japanese invoices:
Console.Write("\n\n\u65e5\u672c\u8a9e\u306e\u8acb\u6c42\u66f8\u3092\u751f\u6210\u3059\u308b\u306b\u306f\uff1a");
```
Output (UTF-16):
```
> 日本語の請求書を生成するには:
```
#### String interpolation
Can be combined with verbatim strings.
```c#
Console.WriteLine($@"C:\Output\{projectName}\Data");
```

View File

@ -0,0 +1,10 @@
## Types
Float Type Precision
float ~6-9 digits 0.25F
double ~15-17 digits 0.25
decimal 28-29 digits 0.25M
Both lowercase 'f' or 'F' can be used, same for 'm' and 'M'.

View File

@ -1,4 +1,4 @@
### Elm
## Elm
* [Formatting](./formatting)
* [Maybe.andThen](./maybeandthen)

View File

@ -2,6 +2,7 @@ import React from 'react';
import { Route } from 'react-router-dom';
import { languages } from './Language/Language';
import JapanesePage from './Pages/Japan/JapanesePage';
import CSharpPage from './Pages/Software/csharp/CSharpPage';
import ElmPage from './Pages/Software/elm/ElmPage';
@ -16,17 +17,26 @@ export const japaneseRoutes = languages.map(lang => {
}).flat();
// Software
export const elmRoutes = languages.map(lang => {
export const programmingLanguageRoutes = languages.map(lang => {
// Main page.
const main = <Route key={`${lang}-elm-main`} exact path={`/${lang}/software/elm/`} element={<ElmPage mdPath={`Software/elm/${lang}/main.md`} />} />
const mainCSharp = <Route key={`${lang}-csharp-main`} exact path={`/${lang}/software/csharp/`} element={<CSharpPage mdPath={`Software/csharp/${lang}/main.md`} />} />
const mainElm = <Route key={`${lang}-elm-main`} exact path={`/${lang}/software/elm/`} element={<ElmPage mdPath={`Software/elm/${lang}/main.md`} />} />
// Pages within Elm.
const md = ['dry', 'formatting', 'maybeandthen', 'maybemap'];
const entries = md.map(entry => {
let md = ['strings', 'types'];
const entriesCSharp = md.map(entry => {
const path = `/${lang}/software/csharp/${entry}`;
const mdPath = `Software/csharp/${lang}/${entry}.md`;
return <Route key={`${lang}-${entry}`} exact path={path} element={<CSharpPage mdPath={mdPath} />} />;
});
// Pages within Elm.
md = ['dry', 'formatting', 'maybeandthen', 'maybemap'];
const entriesElm = md.map(entry => {
const path = `/${lang}/software/elm/${entry}`;
const mdPath = `Software/elm/${lang}/${entry}.md`;
return <Route key={`${lang}-${entry}`} exact path={path} element={<ElmPage mdPath={mdPath} />} />;
});
return [main, ...entries];
return [mainCSharp, mainElm, ...entriesCSharp, ...entriesElm];
}).flat();