mirror of
https://github.com/lxsang/antd-web-apps
synced 2024-11-20 02:18:20 +01:00
finish the info client
This commit is contained in:
parent
0869ca9bf5
commit
f94d2ffa50
11
Makefile
Normal file
11
Makefile
Normal 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
11
blog/index.html
Normal 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
10
grs/Makefile
Normal 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
2337
grs/font-awesome.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
grs/fonts/FuturaNewBold.woff
Normal file
BIN
grs/fonts/FuturaNewBold.woff
Normal file
Binary file not shown.
BIN
grs/fonts/FuturaNewDemi.woff
Normal file
BIN
grs/fonts/FuturaNewDemi.woff
Normal file
Binary file not shown.
BIN
grs/fonts/FuturaNewLight.woff
Normal file
BIN
grs/fonts/FuturaNewLight.woff
Normal file
Binary file not shown.
BIN
grs/fonts/FuturaNewLightOblique.woff
Normal file
BIN
grs/fonts/FuturaNewLightOblique.woff
Normal file
Binary file not shown.
12
grs/hermit-light.css
Executable file
12
grs/hermit-light.css
Executable 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
BIN
grs/images/mrsang.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
84
grs/mainsite.css
Normal file
84
grs/mainsite.css
Normal 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
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
39
grs/ubuntu-regular.css
Executable 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
41
index.html
Normal 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>
|
@ -5,6 +5,6 @@ copyfiles = index.ls style.css
|
|||||||
main:
|
main:
|
||||||
- mkdir $(BUILDDIR)
|
- mkdir $(BUILDDIR)
|
||||||
cp -rf $(copyfiles) $(BUILDDIR)
|
cp -rf $(copyfiles) $(BUILDDIR)
|
||||||
cd $(BUILDDIR) && ln -s ../gresources .rst
|
- cd $(BUILDDIR) && ln -s ../grs ./rst
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(BUILDDIR)/*
|
rm -rf $(BUILDDIR)/*
|
317
info/index.ls
317
info/index.ls
@ -1,14 +1,22 @@
|
|||||||
<?lua
|
<?lua
|
||||||
|
std.html()
|
||||||
|
local user = "mrsang"
|
||||||
local die = function(m)
|
local die = function(m)
|
||||||
echo(m)
|
echo(m)
|
||||||
debug.traceback=nil
|
debug.traceback=nil
|
||||||
error("Permission denied")
|
error("Permission denied")
|
||||||
end
|
end
|
||||||
std.html()
|
local sectionByCID = function(id)
|
||||||
local user = "mrsang"
|
local db = require("db.model").get(user,"cv_sections",nil)
|
||||||
local db = require("db.model").get("mrsang","user",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
|
if db == nil then die("cannot get db data") end
|
||||||
local data = db:getAll()
|
local data, a = db:getAll()
|
||||||
db:close()
|
db:close()
|
||||||
if data == nil or data[0] == nil then die("Cannot fetch user info") end
|
if data == nil or data[0] == nil then die("Cannot fetch user info") end
|
||||||
data = data[0]
|
data = data[0]
|
||||||
@ -16,12 +24,15 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<!--script type="text/javascript" src="../os/scripts/jquery-3.2.1.min.js"></script-->
|
<!--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="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>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
|
|
||||||
|
<div class = "cv-content">
|
||||||
<h1>
|
<h1>
|
||||||
<span class="name"><?=data.fullname?></span>
|
<span class="name"><?=data.fullname?></span>
|
||||||
<span class="cv">Curriculum Vitae</span>
|
<span class="cv">Curriculum Vitae</span>
|
||||||
@ -34,217 +45,147 @@
|
|||||||
<span class="fa fa-envelope-o"></span>
|
<span class="fa fa-envelope-o"></span>
|
||||||
<span class="text"><?=data.email?></span>
|
<span class="text"><?=data.email?></span>
|
||||||
<span class="fa fa-globe"></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>
|
||||||
<p class="shortbio">
|
<p class="shortbio">
|
||||||
<span class="fa fa-quote-left"></span>
|
<span class="fa fa-quote-left"></span>
|
||||||
<span><?=data.shortbiblio?></span>
|
<span><?=data.shortbiblio?></span>
|
||||||
<span class="fa fa-quote-right"></span>
|
<span class="fa fa-quote-right"></span>
|
||||||
</p>
|
</p>
|
||||||
<div class="container">
|
<?lua
|
||||||
<h1>Education</h1>
|
-- 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">
|
<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">
|
<div class= "entry">
|
||||||
<p>
|
<p>
|
||||||
|
<?lua if entry.title ~= "" then ?>
|
||||||
<span class= "fa fa-bookmark"></span>
|
<span class= "fa fa-bookmark"></span>
|
||||||
<span class= "title">Universite de Bretagne Occidental</span>
|
<span class= "title"><?=entry.title?></span>
|
||||||
|
<?lua end ?>
|
||||||
<span class= "title-optional"></span>
|
<span class= "title-optional"></span>
|
||||||
<span class="location">Brest, France</span>
|
<span class="location"><?=entry.location?></span>
|
||||||
</p>
|
</p>
|
||||||
<div class="entry-short-des">
|
<div class="entry-short-des">
|
||||||
<span>PhD in computer science</span>
|
<span><?=entry.subtitle?></span>
|
||||||
<span class="date">2014-2017</span>
|
<span class="date">
|
||||||
</div>
|
<?lua
|
||||||
<div class="entry-description">
|
if entry["start"]:match("^20%d.*") and entry['end']:match("^20%d.*") then
|
||||||
</div>
|
echo(entry.start.."-"..entry['end'])
|
||||||
</div>
|
end
|
||||||
|
?>
|
||||||
<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>
|
</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>
|
||||||
<div class="entry-description">
|
<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>
|
</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">
|
<div class= "entry">
|
||||||
<p>
|
<p>
|
||||||
|
<?lua if entry.title ~= "" then ?>
|
||||||
<span class= "fa fa-bookmark"></span>
|
<span class= "fa fa-bookmark"></span>
|
||||||
<span class= "title">Master 2 project (Internship)</span>
|
<span class= "title"><?=entry.title?></span>
|
||||||
<span class= "title-optional">
|
<?lua end ?>
|
||||||
Optimization by parallelization of the 3d elastic free form deformation algorithm
|
<span class= "title-optional"></span>
|
||||||
|
<span class="location"><?=entry.location?></span>
|
||||||
|
</p>
|
||||||
|
<div class="entry-short-des">
|
||||||
|
<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>
|
||||||
<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>
|
||||||
<div class="entry-description">
|
<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>
|
</div>
|
||||||
|
<?lua
|
||||||
|
end
|
||||||
</div>
|
end
|
||||||
|
echo ("</div>")
|
||||||
|
end
|
||||||
</div>
|
end
|
||||||
|
db:close()
|
||||||
|
end
|
||||||
<div class="container">
|
?>
|
||||||
<h1>Previous employment</h1>
|
<div class = "container">
|
||||||
|
<h1 style="margin:0;"></h1>
|
||||||
<div class= "entry">
|
<p style="text-align:right; padding:0; margin:0;color:#878887;">Powered by antd server, (C) 2017-2018 Xuan Sang LE</p>
|
||||||
<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>
|
||||||
|
<div class = "cv-toc">
|
||||||
<div class= "entry">
|
<ul>
|
||||||
<p>
|
<?lua
|
||||||
<span class= "fa fa-bookmark"></span>
|
if data then
|
||||||
<span class= "title">ENSTA Bretagne</span>
|
for k, idx in pairs(a) do
|
||||||
<span class= "title-optional"></span>
|
local cat = data[idx]
|
||||||
<span class="location">Brest, France</span>
|
?>
|
||||||
</p>
|
<li><a href="#<?='toc'..idx?>"><?=cat.name:gsub("^%d+%.","")?></a></li>
|
||||||
<div class="entry-short-des">
|
<?lua
|
||||||
<span>3 years CDD</span>
|
end
|
||||||
<span class="date">2014-2017</span>
|
end
|
||||||
</div>
|
?>
|
||||||
<div class="entry-description">
|
</ul>
|
||||||
Working as researcher, partition in the research of the application of object-oriented design methodology in embedded systems.
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script>
|
||||||
<div class= "entry">
|
window.onload = function()
|
||||||
<p>
|
{
|
||||||
<span class= "fa fa-bookmark"></span>
|
var els = document.getElementsByClassName("entry-description");
|
||||||
<span class= "title">ENSTA Bretagne</span>
|
var converter = new showdown.Converter();
|
||||||
<span class= "title-optional"></span>
|
for(var i in els)
|
||||||
<span class="location">Brest, France</span>
|
{
|
||||||
</p>
|
var text = els[i].innerHTML;
|
||||||
<div class="entry-short-des">
|
var html = converter.makeHtml(text);
|
||||||
<span>3 years CDD</span>
|
els[i].innerHTML = html;
|
||||||
<span class="date">2014-2017</span>
|
}
|
||||||
</div>
|
}
|
||||||
<div class="entry-description">
|
</script>
|
||||||
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>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -25,6 +25,9 @@
|
|||||||
font-family: "FuturaNormal";
|
font-family: "FuturaNormal";
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
/*color: #414339;*/
|
||||||
}
|
}
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
@ -37,9 +40,35 @@ h1 .name{
|
|||||||
border-right: 2px solid #878887;
|
border-right: 2px solid #878887;
|
||||||
padding-right: 10px;
|
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{
|
h1 .cv{
|
||||||
color:#878887;
|
color:#878887;
|
||||||
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.coordination {
|
.coordination {
|
||||||
@ -84,11 +113,13 @@ h1 .cv{
|
|||||||
}
|
}
|
||||||
.entry .location{
|
.entry .location{
|
||||||
float:right;
|
float:right;
|
||||||
font-family: "FuturaBold";
|
font-family: "FuturaItalic";
|
||||||
|
color: #662702;
|
||||||
}
|
}
|
||||||
.entry-short-des{
|
.entry-short-des{
|
||||||
font-family: "FuturaItalic";
|
font-family: "FuturaItalic";
|
||||||
padding-left: 13px;
|
padding-left: 13px;
|
||||||
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
.entry-short-des span.date{
|
.entry-short-des span.date{
|
||||||
float:right;
|
float:right;
|
||||||
|
Loading…
Reference in New Issue
Block a user