1
0
mirror of https://github.com/lxsang/antd-web-apps synced 2024-12-25 17:08:22 +01:00

finish the info client

This commit is contained in:
Xuan Sang LE 2018-02-21 19:04:26 +01:00
parent 0869ca9bf5
commit f94d2ffa50
17 changed files with 2717 additions and 197 deletions

11
Makefile Normal file
View File

@ -0,0 +1,11 @@
BUILDDIR = ./build
projs = grs info
copyfiles = index.html
main: copy
for f in $(projs); do make -C "$${f}" ; done
copy:
cp -rf $(copyfiles) $(BUILDDIR)
clean:
for f in $(projs); do rm -r $(BUILDDIR)/"$${f}"; done

11
blog/index.html Normal file
View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Blog</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<h1>Under maintenance</h1>
</body>
</html>

10
grs/Makefile Normal file
View File

@ -0,0 +1,10 @@
BUILDDIR = ../build/grs
copyfiles = font-awesome.css fonts images showdown.min.js ubuntu-regular.css mainsite.css hermit-light.css
main:
- mkdir $(BUILDDIR)
cp -rf $(copyfiles) $(BUILDDIR)
- cd $(BUILDDIR) && ln -s ../os/resources/themes/antos/fonts/ ./gfonts && ln -s ../os/scripts/ ./gscripts
clean:
rm -rf $(BUILDDIR)/*

2337
grs/font-awesome.css vendored Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

12
grs/hermit-light.css Executable file
View File

@ -0,0 +1,12 @@
/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on August 6, 2017 */
@font-face {
font-family: 'HermitLight';
src: url('gfonts/hermit-light-webfont.woff2') format('woff2'),
url('gfonts/hermit-light-webfont.woff') format('woff');
font-weight: normal;
font-style: normal;
}

BIN
grs/images/mrsang.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

84
grs/mainsite.css Normal file
View File

@ -0,0 +1,84 @@
#layout{
width:100%;
font-family: "Ubuntu";
font-size: 14px;
/*margin:0 auto;
display: flex;
flex-direction: row-reverse;
color: #414339;*/
}
#top{
background-color: #2c2c2c;
color: white;
font-weight: bold;
display: block;
text-align: center;
height: 50px;
}
#top ul{
padding:0;
margin: 0;
padding-top: 16px;
display: flex;
justify-content: center;
flex-direction: row;
list-style: none;
}
#top ul li{
/*float: left;*/
padding-left:10px;
padding-right: 10px;
}
#top ul li i{
margin-right: 3px;
}
#top ul li a{
text-decoration: none;
color: white;
}
#top ul li a:hover{
border-bottom: 1px dashed white;
}
#bottom{
position: fixed;
bottom: 0;
height: 20px;
text-align: center;
color:#878887;
font-size: 12px;
width: 100%;
padding:5px;
border-top: 1px solid #878887;
}
#container{
margin-top: 50px;
display: flex;
justify-content: center;
flex-direction: row;
}
#container img{
max-height: 250px;
}
#vcard {
margin-left: 20px;
}
#vcard p.greeting{
font-size: 30px;
color: #414339;
padding: 0;
margin: 0;
margin-bottom: 15px;
}
#vcard p.dedicate{
color: #414339;
/*font-family: "HermitLight";
text-align: justify;
*/
font-size: 16px;
padding: 0;
margin: 0;
line-height: 1.6;
width: 500px;
}

3
grs/showdown.min.js vendored Normal file

File diff suppressed because one or more lines are too long

39
grs/ubuntu-regular.css Executable file
View File

@ -0,0 +1,39 @@
/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on August 6, 2017 */
@font-face {
font-family: 'Ubuntu';
src: url('gfonts/ubuntu-regular-webfont.woff2') format('woff2'),
url('gfonts/ubuntu-regular-webfont.woff') format('woff');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Ubuntu';
src: url('gfonts/ubuntu-bold-webfont.woff2') format('woff2'),
url('gfonts/ubuntu-bold-webfont.woff') format('woff');
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: 'Ubuntu';
src: url('gfonts/ubuntu-bolditalic-webfont.woff2') format('woff2'),
url('gfonts/ubuntu-bolditalic-webfont.woff') format('woff');
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: 'Ubuntu';
src: url('gfonts/ubuntu-italic-webfont.woff2') format('woff2'),
url('gfonts/ubuntu-italic-webfont.woff') format('woff');
font-weight: normal;
font-style: italic;
}

41
index.html Normal file
View File

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Xuan Sang LE, personal site</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="grs/ubuntu-regular.css" />
<link rel="stylesheet" type="text/css" href="grs/font-awesome.css" />
<link rel="stylesheet" type="text/css" href="grs/mainsite.css" />
</head>
<body>
<div id = "layout">
<div id = "top">
<ul>
<li ><i class = "fa fa-address-card"></i><a href="https://info.lxsang.me" target="_blank">Porfolio</a></li>
<li><i class = "fa fa-newspaper-o"></i><a href="https://blog.lxsang.me" target="_blank">Blog</a></li>
<li><i class = "fa fa-paper-plane"></i>Contact</li>
<li > <i class = "fa fa-globe"></i><a href = "https://os.lxsang.me" target="_blank">Web OS</a></li>
</ul>
</div>
<div id = "center">
<div id = "container">
<img src = "grs/images/mrsang.png" ></img>
<div id = "vcard">
<p class = "greeting">Hi, I'm <b>Xuan Sang LE</b></p>
<p class = "dedicate">
<span class="fa fa-quote-left"></span>
<span>
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
</span>
<span class="fa fa-quote-right"></span>
</p>
</div>
</div>
</div>
<div id = "bottom">
Powered by antd, (c) 2017 - 2018 Xuan Sang LE
</div>
</div>
</body>
</html>

View File

@ -5,6 +5,6 @@ copyfiles = index.ls style.css
main:
- mkdir $(BUILDDIR)
cp -rf $(copyfiles) $(BUILDDIR)
cd $(BUILDDIR) && ln -s ../gresources .rst
- cd $(BUILDDIR) && ln -s ../grs ./rst
clean:
rm -rf $(BUILDDIR)/*

View File

@ -1,14 +1,22 @@
<?lua
<?lua
std.html()
local user = "mrsang"
local die = function(m)
echo(m)
debug.traceback=nil
error("Permission denied")
end
std.html()
local user = "mrsang"
local db = require("db.model").get("mrsang","user",nil)
local sectionByCID = function(id)
local db = require("db.model").get(user,"cv_sections",nil)
if db == nil then die("Cannot get the cv_sections table") end
local cond = { exp = { ["="] = { cid = id } } , order = { start = "DESC" } }
local data, a = db:find(cond)
db:close()
return data, a
end
local db = require("db.model").get(user,"user",nil)
if db == nil then die("cannot get db data") end
local data = db:getAll()
local data, a = db:getAll()
db:close()
if data == nil or data[0] == nil then die("Cannot fetch user info") end
data = data[0]
@ -16,12 +24,15 @@
<html>
<head>
<!--script type="text/javascript" src="../os/scripts/jquery-3.2.1.min.js"></script-->
<script type="text/javascript" src="main.js"></script>
<script type="text/javascript" src="rst/showdown.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="font-awesome.css" />
<link rel="stylesheet" type="text/css" href="rst/font-awesome.css" />
<title>Porfolio</title>
</head>
<body>
<div class="layout">
<div class="layout">
<div class = "cv-content">
<h1>
<span class="name"><?=data.fullname?></span>
<span class="cv">Curriculum Vitae</span>
@ -34,217 +45,147 @@
<span class="fa fa-envelope-o"></span>
<span class="text"><?=data.email?></span>
<span class="fa fa-globe"></span>
<span class="text"><?=data.url?></span>
<span class="text"><a href ="<?=data.url?>"><?=data.url?></a></span>
</p>
<p class="shortbio">
<span class="fa fa-quote-left"></span>
<span><?=data.shortbiblio?></span>
<span class="fa fa-quote-right"></span>
</p>
<div class="container">
<h1>Education</h1>
<?lua
-- query the the sections list
db = require("db.model").get(user,"cv_cat",nil)
if db == nil then die("Cannot get the cv_cat table") end
local cond = { exp = { ["="] = { pid = 0 } }, order = { name = "ASC" } }
data, a = db:find(cond)
if data then
for k, idx in pairs(a) do
local cat = data[idx]
cond = { exp = { ["="] = { pid = cat.id } }, order = { name = "ASC" } }
local children, b = db:find(cond)
if children and #children > 0 then -- we have the sub childrent
?>
<div class="container" id = "<?='toc'..idx?>">
<h1><?=cat.name:gsub("^%d+%.","")?></h1>
<?lua
for l, j in pairs(b) do
local child = children[j]
?>
<div class="sub-container">
<h2>Academic Qualifications</h2>
<h2><?=child.name:gsub("^%d+%.","")?></h2>
<?lua
local entries, c = sectionByCID(child.id)
if entries then
for m, k in pairs(c) do
local entry = entries[k]
?>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">Universite de Bretagne Occidental</span>
<?lua if entry.title ~= "" then ?>
<span class= "fa fa-bookmark"></span>
<span class= "title"><?=entry.title?></span>
<?lua end ?>
<span class= "title-optional"></span>
<span class="location">Brest, France</span>
<span class="location"><?=entry.location?></span>
</p>
<div class="entry-short-des">
<span>PhD in computer science</span>
<span class="date">2014-2017</span>
</div>
<div class="entry-description">
</div>
</div>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">Universite de Bretagne Occidental</span>
<span class= "title-optional"></span>
<span class="location">Brest, France</span>
</p>
<div class="entry-short-des">
<span>PhD in computer science</span>
<span class="date">2014-2017</span>
</div>
<div class="entry-description">
</div>
</div>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">Universite de Bretagne Occidental</span>
<span class= "title-optional"></span>
<span class="location">Brest, France</span>
</p>
<div class="entry-short-des">
<span>PhD in computer science</span>
<span class="date">2014-2017</span>
</div>
<div class="entry-description">
</div>
</div>
</div>
<div class="sub-container">
<h2>Notable Projects</h2>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">PHD Project (Ongoing)</span>
<span class= "title-optional">
Software/FPGA Co-design for Edge-computing: Promoting Object-oriented Design
<span><?=entry.subtitle?></span>
<span class="date">
<?lua
if entry["start"]:match("^20%d.*") and entry['end']:match("^20%d.*") then
echo(entry.start.."-"..entry['end'])
end
?>
</span>
<span class="location"></span>
</p>
<div class="entry-short-des">
<span></span>
<span class="date">At: Mines-Télécom, Mines Douai and ENSTA Bretagne, France</span>
</div>
<div class="entry-description">
Working as a PhD student, my research focuses on the application of the object-oriented design methodol- ogy in embedded systems. The work mainly focuses on: (1) the use of object-oriented design principles on hardware design, especially on FPGA design. (2) The implementation of an object oriented and distributed platform for edge-computing on hybrid (SW/HW) sensor network, based on a Virtual Machine (Smalltalk) solution. The goal facilitates the development, deployment and maintenance of distributed applications on that hybrid and reconfigurable system. This project is a collaboration between ENSTA Bretagne and École des Mines de Douai.
<?=entry.content?>
</div>
</div>
<?lua
end
end
?>
</div>
<?lua
end
?>
</div>
<?lua
else
?>
<div class="container" id="<?='toc'..idx?>">
<h1><?=cat.name:gsub("^%d+%.","")?></h1>
<?lua
local entries, c = sectionByCID(cat.id)
if entries then
for m, k in pairs(c) do
local entry = entries[k]
?>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">Master 2 project (Internship)</span>
<span class= "title-optional">
Optimization by parallelization of the 3d elastic free form deformation algorithm
</span>
<span class="location"></span>
<?lua if entry.title ~= "" then ?>
<span class= "fa fa-bookmark"></span>
<span class= "title"><?=entry.title?></span>
<?lua end ?>
<span class= "title-optional"></span>
<span class="location"><?=entry.location?></span>
</p>
<div class="entry-short-des">
<span></span>
<span class="date">At: Mines-Télécom, Mines Douai and ENSTA Bretagne, France</span>
<span><?=entry.subtitle?></span>
<span class="date">
<?lua
if entry["start"]:match("^20%d.*") and entry['end']:match("^20%d.*") then
echo(entry.start.."-"..entry['end'])
end
?>
</span>
</div>
<div class="entry-description">
Working as a PhD student, my research focuses on the application of the object-oriented design methodol- ogy in embedded systems. The work mainly focuses on: (1) the use of object-oriented design principles on hardware design, especially on FPGA design. (2) The implementation of an object oriented and distributed platform for edge-computing on hybrid (SW/HW) sensor network, based on a Virtual Machine (Smalltalk) solution. The goal facilitates the development, deployment and maintenance of distributed applications on that hybrid and reconfigurable system. This project is a collaboration between ENSTA Bretagne and École des Mines de Douai.
<?=entry.content?>
</div>
</div>
</div>
<?lua
end
end
echo ("</div>")
end
end
db:close()
end
?>
<div class = "container">
<h1 style="margin:0;"></h1>
<p style="text-align:right; padding:0; margin:0;color:#878887;">Powered by antd server, (C) 2017-2018 Xuan Sang LE</p>
</div>
<div class="container">
<h1>Previous employment</h1>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">ENSTA Bretagne</span>
<span class= "title-optional"></span>
<span class="location">Brest, France</span>
</p>
<div class="entry-short-des">
<span>3 years CDD</span>
<span class="date">2014-2017</span>
</div>
<div class="entry-description">
Working as researcher, partition in the research of the application of object-oriented design methodology in embedded systems.
</div>
</div>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">ENSTA Bretagne</span>
<span class= "title-optional"></span>
<span class="location">Brest, France</span>
</p>
<div class="entry-short-des">
<span>3 years CDD</span>
<span class="date">2014-2017</span>
</div>
<div class="entry-description">
Working as researcher, partition in the research of the application of object-oriented design methodology in embedded systems.
</div>
</div>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">ENSTA Bretagne</span>
<span class= "title-optional"></span>
<span class="location">Brest, France</span>
</p>
<div class="entry-short-des">
<span>3 years CDD</span>
<span class="date">2014-2017</span>
</div>
<div class="entry-description">
Working as researcher, partition in the research of the application of object-oriented design methodology in embedded systems.
</div>
</div>
</div>
<div class="container">
<h1>Technical and Personal skills</h1>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">Programming language</span>
<span class= "title-optional"></span>
<span class="location"></span>
</p>
<div class="entry-short-des">
<span></span>
<span class="date"></span>
</div>
<div class="entry-description">
Proficient in: C, C++, Pharo (Smalltalk), Python, Ruby, Java, PHP, Lua, Shell script, VHDL, HTML, Javascript, CSS. Also basic ability with: Assembly, Matlab.
</div>
</div>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">Programming language</span>
<span class= "title-optional"></span>
<span class="location"></span>
</p>
<div class="entry-short-des">
<span></span>
<span class="date"></span>
</div>
<div class="entry-description">
Proficient in: C, C++, Pharo (Smalltalk), Python, Ruby, Java, PHP, Lua, Shell script, VHDL, HTML, Javascript, CSS. Also basic ability with: Assembly, Matlab.
</div>
</div>
<div class= "entry">
<p>
<span class= "fa fa-bookmark"></span>
<span class= "title">Programming language</span>
<span class= "title-optional"></span>
<span class="location"></span>
</p>
<div class="entry-short-des">
<span></span>
<span class="date"></span>
</div>
<div class="entry-description">
Proficient in: C, C++, Pharo (Smalltalk), Python, Ruby, Java, PHP, Lua, Shell script, VHDL, HTML, Javascript, CSS. Also basic ability with: Assembly, Matlab.
</div>
</div>
</div>
</div>
<div class = "cv-toc">
<ul>
<?lua
if data then
for k, idx in pairs(a) do
local cat = data[idx]
?>
<li><a href="#<?='toc'..idx?>"><?=cat.name:gsub("^%d+%.","")?></a></li>
<?lua
end
end
?>
</ul>
</div>
</div>
<script>
window.onload = function()
{
var els = document.getElementsByClassName("entry-description");
var converter = new showdown.Converter();
for(var i in els)
{
var text = els[i].innerHTML;
var html = converter.makeHtml(text);
els[i].innerHTML = html;
}
}
</script>
</body>
</html>

View File

@ -24,7 +24,10 @@
width:800px;
font-family: "FuturaNormal";
text-align: justify;
margin:0 auto;
margin:0 auto;
display: flex;
flex-direction: row-reverse;
/*color: #414339;*/
}
h1 {
font-size: 25px;
@ -37,9 +40,35 @@ h1 .name{
border-right: 2px solid #878887;
padding-right: 10px;
}
.cv-toc{
display: block;
text-align: right;
min-width: 180px;
margin-top: 135px;
margin-right: 10px;
border-right: 1px dashed #878887;
}
.cv-toc ul{
margin: 0;
padding:0;
padding-right: 10px;
list-style: none;
}
.cv-toc ul a{
color:#414339;
text-decoration: none;
display: inline-block;
padding-bottom: 3px;
}
.cv-toc ul a:hover{
border-bottom: 1px dashed #878887;
}
.cv-content{
display: block;
}
h1 .cv{
color:#878887;
padding-left: 10px;
}
.coordination {
@ -84,11 +113,13 @@ h1 .cv{
}
.entry .location{
float:right;
font-family: "FuturaBold";
font-family: "FuturaItalic";
color: #662702;
}
.entry-short-des{
font-family: "FuturaItalic";
padding-left: 13px;
margin-bottom: 5px;
}
.entry-short-des span.date{
float:right;