From 4e7191a9a0e795f268be2a7747f9ff4db403c0e0 Mon Sep 17 00:00:00 2001 From: KevinZonda <33132228+KevinZonda@users.noreply.github.com> Date: Sun, 25 Apr 2021 17:59:44 +0100 Subject: [PATCH] add data & copts code --- .gitattributes | 1 + Data/README.md | 3 + Data/data/default.txt | 21 +++++ Data/data/zh.txt | 21 +++++ Data/model/index.kvm | 161 ++++++++++++++++++++++++++++++++++++++ Kvm.Analyser/Parser.cs | 20 ++--- Kvm.ConsoleApp/Program.cs | 22 ++---- Kvm.Log/Default.cs | 7 ++ Kvm.Log/IKLog.cs | 1 + 9 files changed, 228 insertions(+), 29 deletions(-) create mode 100644 .gitattributes create mode 100644 Data/README.md create mode 100644 Data/data/default.txt create mode 100644 Data/data/zh.txt create mode 100644 Data/model/index.kvm diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7245f3e --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.kvm linguist-language=KVM \ No newline at end of file diff --git a/Data/README.md b/Data/README.md new file mode 100644 index 0000000..609bb2a --- /dev/null +++ b/Data/README.md @@ -0,0 +1,3 @@ +# LGBT-CN Data + +This is LGBT-CN's data. Refer: \ No newline at end of file diff --git a/Data/data/default.txt b/Data/data/default.txt new file mode 100644 index 0000000..a3af19a --- /dev/null +++ b/Data/data/default.txt @@ -0,0 +1,21 @@ +Description= +About= +Support= +Lang1= +Lang1Href= +Lang2= +Lang2Href= +MainTitle= +Slogan= +ProjectTarget= +AboutLGBTQIA= +WhatsLGBTQIA= +LGBTQIADefinition= +WhyCreate= +ReasonCreate= +WhyNeedEquality= +ReasonNeedEquality= +HowToRespect= +WaysToRespect= +WaysToSupport= +PRTip= diff --git a/Data/data/zh.txt b/Data/data/zh.txt new file mode 100644 index 0000000..3ff5516 --- /dev/null +++ b/Data/data/zh.txt @@ -0,0 +1,21 @@ +Description=中国的 LGBTQIA 群体十分渴望自由平等 +About=关于 +Support=支持 +Lang1=English +Lang1Href=/page/en-GB.html +Lang2=繁體中文 +Lang2Href=/page/zh-TW.html +MainTitle=人们生来是而且始终是自由平等的 +Slogan=People were born free and equal. +ProjectTarget=本项目意图在 LGBTQIA 程序员群体中唤起对自由平等的追求,哪怕我们都深知这不会激起浪花。无论是异性恋、同性恋、双性恋、跨性别、疑性恋、双性人、无性恋,人们生来就是平等的,拥有平等的人权,这一点无法否认。

+AboutLGBTQIA=关于 LGBTQIA +WhatsLGBTQIA=什么是 LGBTQIA? +LGBTQIADefinition=LGBTQIA 是一个缩略词,它代表女同性恋(Lesbian)、男同性恋(Gay)、双性恋(Bisexual)、跨性别者(Transgender)、对自身性别认同产生疑惑的人/疑性恋(Questioning)、双性人(Intersexual)、无性恋(Asexual)以及我们的支持者,这类性少数群体需要受到尊重,因为我们生来如此。 +WhyCreate=这个项目为什么建立? +ReasonCreate=由于中国的传统文化背景,LGBTQIA 群体在中国非常不受待见,得不到他人的认可与尊重。建立这个项目是为了在开源工作者中找到 LGBTQIA 群体或是支持 LGBTQIA 平权的人们,从舆论上改善 LGBTQIA 群体在中国的状况,尽管这会造成的影响并不大,但总比没有好。 +WhyNeedEquality=为什么 LGBTQIA 需要平权? +ReasonNeedEquality=LGBTQIA 是少数群体,尽管 LGBTQIA也是普通人,但无法否认的是我们也与占多数的异性恋有所不同,政治权利无法受到完整的保障。自由、平等,在现代社会永远都是最重要的,在中国,LGBTQIA 并没有得到真正的自由平等,为了让这类群体过上正常的生活,我们需要争取平权。 +HowToRespect=如何尊重 LGBTQIA 群体? +WaysToRespect=就像你尊重你身边的任何一个朋友一样,把 LGBTQIA 们当做普通人。记住 LGBTQIA 不是任何形式上的一种疾病,哪怕你们有生理上的差异,LGBTQIA 也是正常人。同时,LGBTQIA 确实也需要比异性恋更多的关怀,因为 LGBTQIA 常常缺乏安全感,并且渴望被认同。 +WaysToSupport=如果你支持 LGBTQIA 平权,欢迎在本项目 GitHub 仓库 中的 README.md 中留下你的名字,并点一个 Star 作为支持!同时,你也可以写一篇关于中国 LGBTQIA 群体的文章,将原文地址和 Markdown 文件(作为备份)提供给我们,只要文章内容与 LGBTQIA 相关,或是 LGBTQIA 中的任意一个群体相关,呼吁平权,我们都会通过。所有支持者的名字和他们提供的文章都可以在 README.md 文件中看到。 +PRTip=尽量以 Pull Requests 的方式提交 Commit(文章请提交在 post 目录下) diff --git a/Data/model/index.kvm b/Data/model/index.kvm new file mode 100644 index 0000000..5ff0084 --- /dev/null +++ b/Data/model/index.kvm @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + LGBTQIA in China + + + + + + + + + + + +
+
+ +
+
+

{%MainTitle%}

+
+
+
+
+
+
+
+
+
{%Slogan%}
+

+ {%ProjectTarget%} +

+ +
+
+ +
+
+ +
+
+
+
+

{%AboutLGBTQIA%}

+
+
+
+
+
+
+
+
+
+
+

{%WhatsLGBTQIA%}

+

+ {%LGBTQIADefinition%} +

+
+
+

{%WhyCreate%}

+

+ {%ReasonCreate%} +

+
+
+

{%WhyNeedEquality%}

+

+ {%ReasonNeedEquality%} +

+
+
+

{%HowToRespect%}

+

+ {%WaysToRespect%} +

+
+
+

+
+
+ +
+

+ {%Support%} +

+
+

+ {%WaysToSupport%} +

+

+ + {%PRTip%} +

+


+ Love is love. We're the same.
+ 在愛面前我們都一樣。 +

+
+
+
+
+ + + + \ No newline at end of file diff --git a/Kvm.Analyser/Parser.cs b/Kvm.Analyser/Parser.cs index 839022e..b1e8f80 100644 --- a/Kvm.Analyser/Parser.cs +++ b/Kvm.Analyser/Parser.cs @@ -36,6 +36,8 @@ public static Dictionary ParseKey(string str) dic.Add(m[..index].Trim(), m[(index + 1)..].Trim()); } + Shared.Log.S("Parse prop successfully!"); + return dic; } @@ -60,20 +62,12 @@ public static string Parse(string kvm, Dictionary prop) var m = Lexer.Parse(kvm); foreach (var i in m) { - switch (i.Type) + sb.Append(i.Type switch { - case TokenType.Unknown: - case TokenType.Block: - sb.Append(i.Data); - break; - case TokenType.Control: - lock (prop) - { - sb.Append(((ControlToken) i).Parse(prop)); - } - - break; - } + TokenType.Unknown or TokenType.Block => i.Data, + TokenType.Control => ((ControlToken) i).Parse(prop), + _ => "" + }); } return sb.ToString(); diff --git a/Kvm.ConsoleApp/Program.cs b/Kvm.ConsoleApp/Program.cs index 755bbf8..7eb8be7 100644 --- a/Kvm.ConsoleApp/Program.cs +++ b/Kvm.ConsoleApp/Program.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using Kvm.Analyser; namespace Kvm.ConsoleApp @@ -7,22 +8,11 @@ class Program { static void Main(string[] args) { - Console.WriteLine("Hello World!"); - string x = @"mmm -KKK=auhsbcj -A=CBA -D="; - var d = Parser.SplitByFirstLine(x); - Console.WriteLine("=====1======="); - Console.WriteLine(d.Item1); - Console.WriteLine("=====2======="); - Console.WriteLine(d.Item2); - Console.WriteLine("=====3======="); - var dix = Parser.ParseKey(x); - foreach (var kv in dix) - { - Console.WriteLine($"K->{kv.Key} && V->{kv.Value}"); - } + var model = File.ReadAllText("in\\model\\index.kvm"); + var prop = File.ReadAllText("in\\data\\zh.txt"); + var m = Parser.Parse(model, prop); + File.WriteAllText("zh.html", m); + } } } \ No newline at end of file diff --git a/Kvm.Log/Default.cs b/Kvm.Log/Default.cs index 8c33afb..bce6b90 100644 --- a/Kvm.Log/Default.cs +++ b/Kvm.Log/Default.cs @@ -23,5 +23,12 @@ public void E(string msg) Console.Error.WriteLine($"[E {DateTime.Now.ToLocalTime().ToString()}] {msg}"); Console.ResetColor(); } + + public void S(string msg) + { + Console.ForegroundColor = ConsoleColor.Green; + Console.Error.WriteLine($"[S {DateTime.Now.ToLocalTime().ToString()}] {msg}"); + Console.ResetColor(); + } } } \ No newline at end of file diff --git a/Kvm.Log/IKLog.cs b/Kvm.Log/IKLog.cs index ecc65bd..e9d3429 100644 --- a/Kvm.Log/IKLog.cs +++ b/Kvm.Log/IKLog.cs @@ -5,5 +5,6 @@ public interface IKLog public void W(string msg); public void I(string msg); public void E(string msg); + public void S(string msg); } } \ No newline at end of file