falkorlib 0.6.2 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/falkorlib/bootstrap/base.rb +78 -20
- data/lib/falkorlib/cli/link.rb +15 -1
- data/lib/falkorlib/cli/new.rb +13 -1
- data/lib/falkorlib/git/base.rb +1 -1
- data/lib/falkorlib/version.rb +1 -1
- data/templates/README/header_readme.erb +22 -9
- data/templates/README/readme_git.erb +6 -4
- data/templates/README/readme_gitflow.erb +1 -1
- data/templates/latex/letter/_content.md.erb +38 -0
- data/templates/latex/letter/main.tex.erb +154 -0
- metadata +4 -3
- data/templates/latex/beamer/.texinfo/main.tex.el +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9e0eb5fd65a5039b1923814b0b4597880ee8b20
|
4
|
+
data.tar.gz: 87597d8eaae0504c3184a10fbdc4a2d614f5480c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 184338250d748f654598b7e403bc92bab50d2355371152cff4cea403ac0ac1408e88a60a7841391a8e7c40479a85f0d9c1c2234472c4630d4154b2c58d50efae
|
7
|
+
data.tar.gz: c6125c2a0e552aa040ca1286828501e1859ac365986ce063ea6783b8bb8fbad62e2432681a71b87a916cabb98c58f09d9b1fd5887f68a2581c6556afb49327c7
|
data/Gemfile.lock
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <
|
3
|
+
# Time-stamp: <Tue 2016-02-02 23:39 svarrette>
|
4
4
|
################################################################################
|
5
5
|
# Interface for the main Bootstrapping operations
|
6
6
|
#
|
@@ -35,9 +35,20 @@ module FalkorLib #:nodoc:
|
|
35
35
|
:image => 'images/logo_ULHPC.pdf',
|
36
36
|
:logo => 'images/logo_UL.pdf'
|
37
37
|
},
|
38
|
+
:letter => {
|
39
|
+
:author_title => 'PhD',
|
40
|
+
:institute => 'University of Luxembourg',
|
41
|
+
:department => 'Parallel Computing and Optimization Group',
|
42
|
+
:department_acro => 'PCOG',
|
43
|
+
:address => '7, rue Richard Coudenhove-Kalergie',
|
44
|
+
:zipcode => 'L-1359',
|
45
|
+
:location => 'Luxembourg',
|
46
|
+
:phone => '(+352) 46 66 44 6600',
|
47
|
+
},
|
38
48
|
:metadata => {
|
39
49
|
:name => '',
|
40
50
|
:type => [],
|
51
|
+
:by => "#{ENV['USER']}",
|
41
52
|
:author => "#{ENV['GIT_AUTHOR_NAME']}",
|
42
53
|
:mail => "#{ENV['GIT_AUTHOR_EMAIL']}",
|
43
54
|
:summary => "rtfm",
|
@@ -45,6 +56,7 @@ module FalkorLib #:nodoc:
|
|
45
56
|
:forge => '',
|
46
57
|
:source => '',
|
47
58
|
:project_page => '',
|
59
|
+
:origin => '',
|
48
60
|
:license => '',
|
49
61
|
:issues_url => '',
|
50
62
|
:tags => []
|
@@ -90,13 +102,11 @@ module FalkorLib #:nodoc:
|
|
90
102
|
:puppet => {},
|
91
103
|
:forge => {
|
92
104
|
:none => { :url => '', :name => "None"},
|
93
|
-
:gforge => { :url => '
|
94
|
-
:github => { :url => '
|
95
|
-
:gitlab => { :url => '
|
105
|
+
:gforge => { :url => 'gforge.uni.lu', :name => 'GForge @ Uni.lu' },
|
106
|
+
:github => { :url => 'github.com', :name => 'Github', :login => "#{`whoami`.chomp.capitalize}" },
|
107
|
+
:gitlab => { :url => 'gitlab.uni.lu', :name => 'Gitlab @ Uni.lu', :login => "#{`whoami`.chomp.capitalize}" },
|
96
108
|
},
|
97
109
|
}
|
98
|
-
|
99
|
-
|
100
110
|
end
|
101
111
|
end
|
102
112
|
end
|
@@ -377,11 +387,13 @@ module FalkorLib
|
|
377
387
|
# get the local configuration
|
378
388
|
local_config = FalkorLib::Config.get(dir)
|
379
389
|
config = FalkorLib::Config::Bootstrap::DEFAULTS[:metadata].clone
|
390
|
+
name = get_project_name(dir)
|
380
391
|
if local_config[:project]
|
381
392
|
config.deep_merge!( local_config[:project])
|
382
393
|
else
|
383
|
-
config[:name] = ask("\tProject name: ",
|
394
|
+
config[:name] = ask("\tProject name: ", name) unless options[:name]
|
384
395
|
end
|
396
|
+
|
385
397
|
# Type of project
|
386
398
|
config[:type] << :latex if options[:latex]
|
387
399
|
if config[:type].empty?
|
@@ -398,25 +410,35 @@ module FalkorLib
|
|
398
410
|
end
|
399
411
|
path = normalized_path(dir)
|
400
412
|
config[:filename] = options[:filename] ? options[:filename] : File.join(path, 'README.md')
|
401
|
-
|
413
|
+
if ( FalkorLib::Git.init?(dir) && FalkorLib::Git.remotes(dir).include?( 'origin' ))
|
414
|
+
config[:origin] = FalkorLib::Git.config('remote.origin.url')
|
415
|
+
if config[:origin] =~ /((gforge|gitlab|github)[\.\w_-]+)[:\d\/]+(\w*)/
|
416
|
+
config[:forge] = $2.to_sym
|
417
|
+
config[:by] = $3
|
418
|
+
end
|
419
|
+
else
|
420
|
+
config[:forge] = select_forge(config[:forge]).to_sym if config[:forge].empty?
|
421
|
+
end
|
402
422
|
forges = FalkorLib::Config::Bootstrap::DEFAULTS[:forge][ config[:forge].to_sym ]
|
423
|
+
#ap config
|
403
424
|
default_source = case config[:forge]
|
404
425
|
when :gforge
|
405
|
-
forges[:url] + "/projects/" +
|
406
|
-
when :github
|
407
|
-
forges[:url] + "/" +
|
408
|
-
when :gitlab
|
409
|
-
forges[:url] + "/" + forges[:name].downcase
|
426
|
+
'https://' + forges[:url] + "/projects/" + name.downcase
|
427
|
+
when :github, :gitlab
|
428
|
+
'https://' + forges[:url] + "/" + config[:by] + "/" + name.downcase
|
410
429
|
else
|
411
430
|
""
|
412
431
|
end
|
413
|
-
ap config
|
414
432
|
FalkorLib::Config::Bootstrap::DEFAULTS[:metadata].each do |k,v|
|
415
433
|
next if v.kind_of?(Array) or [ :license, :forge ].include?( k )
|
416
434
|
next if k == :name and ! config[:name].empty?
|
417
435
|
next if k == :issues_url and ! [ :github, :gitlab ].include?( config[:forge] )
|
418
436
|
#next unless [ :name, :summary, :description ].include?(k.to_sym)
|
419
437
|
default_answer = case k
|
438
|
+
when :author
|
439
|
+
(config[:by] == 'ULHPC') ? 'UL HPC Management Team' : config[:author]
|
440
|
+
when :mail
|
441
|
+
(config[:by] == 'ULHPC') ? 'hpc-sysadmins@uni.lu' : config[:mail]
|
420
442
|
when :description
|
421
443
|
config[:description].empty? ? "#{config[:summary]}" : "#{config[:description]}"
|
422
444
|
when :source
|
@@ -491,13 +513,45 @@ module FalkorLib
|
|
491
513
|
end
|
492
514
|
end # rootlink
|
493
515
|
|
516
|
+
###### makefile_link ######
|
517
|
+
# Create a symlink to the one of Falkor's Makefile, typically bring as a Git submodule
|
518
|
+
# Supported options:
|
519
|
+
# * :force [boolean] force action
|
520
|
+
# * :latex [boolean] Makefile to compile LaTeX documents
|
521
|
+
# * :gnuplot [boolean] Makefile to compile GnuPlot scripts
|
522
|
+
# * :markdown [boolean] Makefile to convert Markdown files to HTML
|
523
|
+
# * :target [string] Path to target
|
524
|
+
# * :repo [string] Path to Falkor's Makefile repository
|
525
|
+
##
|
526
|
+
def makefile_link(dir = Dir.pwd, options = {})
|
527
|
+
path = normalized_path(dir)
|
528
|
+
rootdir = FalkorLib::Git.rootdir(path)
|
529
|
+
info "Create a symlink to the one of Falkor's Makefile"
|
530
|
+
# Add Falkor's
|
531
|
+
submodules = FalkorLib.config[:git][:submodules]
|
532
|
+
submodules['Makefiles'] = {
|
533
|
+
:url => 'https://github.com/Falkor/Makefiles.git',
|
534
|
+
:branch => 'devel'
|
535
|
+
} if submodules['Makefiles'].nil?
|
536
|
+
FalkorLib::Git.submodule_init(rootdir, submodules)
|
537
|
+
|
538
|
+
end # makefile_link
|
539
|
+
|
540
|
+
|
541
|
+
|
542
|
+
|
494
543
|
###### latex ######
|
495
|
-
# Bootstrap a LaTeX sub-project within a given repository
|
544
|
+
# Bootstrap a LaTeX sub-project of type <type> within a given repository <dir>.
|
545
|
+
# Supported types:
|
546
|
+
# * :beamer LaTeX Beamer Slides
|
547
|
+
# * :article LaTeX article
|
548
|
+
# * :letter LaTeX Letter
|
496
549
|
# Supported options:
|
497
550
|
# * :force [boolean] force action
|
498
551
|
##
|
499
552
|
def latex(dir = Dir.pwd, type = :beamer, options = {})
|
500
553
|
ap options if options[:debug]
|
554
|
+
print_error_and_exit "Unsupported type" unless [ :beamer, :article, :letter ].include?( type )
|
501
555
|
path = normalized_path(dir)
|
502
556
|
config = FalkorLib::Config::Bootstrap::DEFAULTS[:latex].clone
|
503
557
|
# initiate the repository if needed
|
@@ -511,7 +565,7 @@ module FalkorLib
|
|
511
565
|
info "Initiate a LaTeX #{type} project from the Git root directory: '#{rootdir}'"
|
512
566
|
really_continue? unless options[:force]
|
513
567
|
relative_path_to_root = (Pathname.new( FalkorLib::Git.rootdir(dir) ).relative_path_from Pathname.new( File.realpath(path))).to_s
|
514
|
-
config[:name] = options[:name] ? options[:name] : ask("\tEnter the name of the #{type} project: ", File.basename(path))
|
568
|
+
config[:name] = options[:name] ? options[:name] : ask("\tEnter the name of the #{type} LaTeX project: ", File.basename(path))
|
515
569
|
raise FalkorLib::ExecError "Empty project name" if config[:name].empty?
|
516
570
|
default_project_dir = (Pathname.new( File.realpath(path) ).relative_path_from Pathname.new( FalkorLib::Git.rootdir(dir))).to_s
|
517
571
|
if relative_path_to_root == '.'
|
@@ -519,16 +573,18 @@ module FalkorLib
|
|
519
573
|
when :article
|
520
574
|
"articles/#{Time.now.year}/#{config[:name]}"
|
521
575
|
when :beamer
|
522
|
-
"slides/#{Time.now.year}/#{config[:name]}
|
576
|
+
"slides/#{Time.now.year}/#{config[:name]}"
|
523
577
|
when :bookchapter
|
524
578
|
"chapters/#{config[:name]}"
|
579
|
+
when :letter
|
580
|
+
"letters/#{Time.now.year}/#{config[:name]}"
|
525
581
|
else
|
526
582
|
"#{config[:name]}"
|
527
583
|
end
|
528
584
|
else
|
529
585
|
default_project_dir += "/#{config[:name]}" unless default_project_dir =~ /#{config[:name]}$/
|
530
586
|
end
|
531
|
-
project_dir = ask("\tLaTeX
|
587
|
+
project_dir = ask("\tLaTeX Sources directory (relative to the Git root directory)", "#{default_project_dir}/src")
|
532
588
|
raise FalkorLib::ExecError "Empty project directory" if project_dir.empty?
|
533
589
|
subdir = File.join(rootdir, project_dir)
|
534
590
|
if File.exists?(File.join(subdir, '.root'))
|
@@ -544,7 +600,7 @@ module FalkorLib
|
|
544
600
|
} if [ :article, :beamer, :bookchapter].include?(type)
|
545
601
|
submodules['beamerthemeFalkor'] = { :url => 'https://github.com/Falkor/beamerthemeFalkor' } if type == :beamer
|
546
602
|
FalkorLib::Git.submodule_init(rootdir, submodules)
|
547
|
-
info "bootstrapping the #{type} project '#{project_dir}'"
|
603
|
+
info "bootstrapping the #{type} project sources in '#{project_dir}'"
|
548
604
|
# Create the project directory
|
549
605
|
Dir.chdir( rootdir ) do
|
550
606
|
run %{ mkdir -p #{project_dir}/images } unless File.directory?("#{subdir}/images")
|
@@ -571,6 +627,8 @@ module FalkorLib
|
|
571
627
|
'Slides '
|
572
628
|
when :bookchapter
|
573
629
|
'Book Chapter '
|
630
|
+
when :letter
|
631
|
+
'Letter '
|
574
632
|
else
|
575
633
|
''
|
576
634
|
end
|
@@ -587,7 +645,7 @@ module FalkorLib
|
|
587
645
|
end
|
588
646
|
# Create the trash directory
|
589
647
|
trash(subdir)
|
590
|
-
|
648
|
+
|
591
649
|
# populate the images/ directory
|
592
650
|
baseimages = File.join( FalkorLib.templates, 'latex', 'images')
|
593
651
|
images_makefile_src = "#{FalkorLib.config[:git][:submodulesdir]}/Makefiles/generic/Makefile.insubdir"
|
data/lib/falkorlib/cli/link.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <
|
3
|
+
# Time-stamp: <Thu 2015-10-22 20:16 svarrette>
|
4
4
|
################################################################################
|
5
5
|
|
6
6
|
require 'thor'
|
@@ -25,6 +25,20 @@ module FalkorLib
|
|
25
25
|
end # rootdir
|
26
26
|
|
27
27
|
|
28
|
+
###### make ######
|
29
|
+
method_option :latex, :default => true, :type => :boolean, :aliases => '-l', :desc => "Makefile to compile LaTeX documents"
|
30
|
+
method_option :gnuplot, :type => :boolean, :aliases => ['--plot', '-g', '-p'], :desc => "Makefile to compile GnuPlot scripts"
|
31
|
+
method_option :markdown, :type => :boolean, :aliases => '-m', :desc => "Makefile to convert Markdown files to HTML"
|
32
|
+
method_option :markdown, :type => :boolean, :aliases => '-m', :desc => "Makefile to convert Markdown files to HTML"
|
33
|
+
method_option :repo, :default => "#{FalkorLib.config[:git][:submodulesdir]}/Makefiles",
|
34
|
+
:aliases => '-r', :desc => "Path to Falkor's Makefile repository (Relative to Git root dir)"
|
35
|
+
method_option :target, :aliases => '-t', :desc => "Symlink target"
|
36
|
+
#......................................
|
37
|
+
desc "make [options]", "Create a symlink to one of Falkor's Makefile, set as Git submodule"
|
38
|
+
def make(dir = Dir.pwd)
|
39
|
+
FalkorLib::Bootstrap.makefile_link(dir, options)
|
40
|
+
end # make
|
41
|
+
|
28
42
|
|
29
43
|
end # class Link
|
30
44
|
end # module CLI
|
data/lib/falkorlib/cli/new.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <
|
3
|
+
# Time-stamp: <Mon 2015-10-12 16:48 svarrette>
|
4
4
|
################################################################################
|
5
5
|
|
6
6
|
require 'thor'
|
@@ -69,6 +69,18 @@ By default, NAME is '.' meaning that the repository will be initialized in the c
|
|
69
69
|
# end # article
|
70
70
|
|
71
71
|
|
72
|
+
###### letter ######
|
73
|
+
method_option :name, :aliases => '-n', :desc => 'Name of the LaTeX project'
|
74
|
+
method_option :dir, :aliases => '-d', :desc => 'Project directory (relative to the git root directory)'
|
75
|
+
#......................................
|
76
|
+
desc "letter [options]", "LaTeX-based letter"
|
77
|
+
#___________________
|
78
|
+
def letter(path = Dir.pwd)
|
79
|
+
FalkorLib::Bootstrap.latex(path, :letter, options)
|
80
|
+
end # letter
|
81
|
+
|
82
|
+
|
83
|
+
|
72
84
|
###### slides ######
|
73
85
|
#......................................
|
74
86
|
desc "slides [options]", "Bootstrap LaTeX Beamer slides"
|
data/lib/falkorlib/git/base.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
################################################################################
|
3
|
-
# Time-stamp: <Tue
|
3
|
+
# Time-stamp: <Tue 2016-02-02 20:58 svarrette>
|
4
4
|
################################################################################
|
5
5
|
# Interface for the main Git operations
|
6
6
|
#
|
data/lib/falkorlib/version.rb
CHANGED
@@ -3,31 +3,35 @@
|
|
3
3
|
<% unless (config[:license].empty? or config[:license] == "none") %>
|
4
4
|
[![Licence](<%= FalkorLib::Bootstrap::get_badge("license", config[:license], 'blue') %>)](<%= FalkorLib::Config::Bootstrap::DEFAULTS[:licenses][ config[:license] ][:url] %>)
|
5
5
|
<% end %>
|
6
|
+
![By <%= config[:by] %>](https://img.shields.io/badge/by-<%= config[:by] %>-blue.svg) [![<%= config[:forge] %>](https://img.shields.io/badge/git-<%= config[:forge] %>-lightgray.svg)](<%= config[:source] %>) [![Issues](https://img.shields.io/badge/issues-<%= config[:forge] %>-green.svg)](<%= config[:issues_url] %>)
|
6
7
|
|
7
|
-
Time-stamp: <
|
8
|
+
Time-stamp: <Tue 2016-02-02 23:42 svarrette>
|
8
9
|
|
9
10
|
<%= ::Artii::Base.new().asciify( config[:name] ).split("\n").join("\n ") %>
|
10
11
|
Copyright (c) <%= Time.now.year %> <%= config[:author] %> <<%= config[:mail] %>>
|
11
12
|
|
12
13
|
<%= config[:summary] %>
|
13
14
|
|
14
|
-
<% unless (config[:license].empty? or config[:license] == "none") %>
|
15
|
-
* [<%= config[:license] %> Licence](<%= FalkorLib::Config::Bootstrap::DEFAULTS[:licenses][ config[:license] ][:url] %>)
|
16
|
-
<% end %>
|
17
|
-
* [Sources](<%= config[:source] %>)
|
18
|
-
|
19
15
|
## Synopsis
|
20
16
|
|
21
17
|
<%= config[:description] %>
|
22
18
|
|
23
|
-
|
24
|
-
## Installation
|
19
|
+
## Installation / Repository Setup
|
25
20
|
|
26
21
|
This repository is hosted on [<%= FalkorLib::Config::Bootstrap::DEFAULTS[:forge][ config[:forge].to_sym ][:name] %>](<%= config[:project_page] %>).
|
27
22
|
|
23
|
+
<% if (config[:forge] == :gitlab) %>
|
24
|
+
* Git interactions with this repository (push, pull etc.) are performed over SSH using the port 8022
|
25
|
+
<% end %>
|
26
|
+
* To clone this repository, proceed as follows (adapt accordingly):
|
27
|
+
|
28
|
+
$> mkdir -p ~/git/<%= FalkorLib::Config::Bootstrap::DEFAULTS[:forge][ config[:forge].to_sym ][:url] %>/<%= config[:by] %>
|
29
|
+
$> cd ~/git/<%= FalkorLib::Config::Bootstrap::DEFAULTS[:forge][ config[:forge].to_sym ][:url] %>/<%= config[:by] %>
|
30
|
+
$> git clone <%= config[:origin] %>
|
31
|
+
|
28
32
|
**`/!\ IMPORTANT`**: Once cloned, initiate your local copy of the repository by running:
|
29
33
|
|
30
|
-
$> cd <%=
|
34
|
+
$> cd <%= name.downcase %>
|
31
35
|
<% if options[:make] %>
|
32
36
|
$> make setup
|
33
37
|
<% else %>
|
@@ -35,3 +39,12 @@ This repository is hosted on [<%= FalkorLib::Config::Bootstrap::DEFAULTS[:forge]
|
|
35
39
|
$> rake setup
|
36
40
|
<% end %>
|
37
41
|
|
42
|
+
This will initiate the [Git submodules of this repository](.gitmodules) and setup the [git flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) layout for this repository.
|
43
|
+
|
44
|
+
Later on, you can upgrade the [Git submodules](.gitmodules) to the latest version by running:
|
45
|
+
|
46
|
+
<% if options[:make] %>
|
47
|
+
$> make upgrade
|
48
|
+
<% else %>
|
49
|
+
$> rake git:submodules:upgrade
|
50
|
+
<% end %>
|
@@ -1,13 +1,15 @@
|
|
1
|
+
## Issues / Feature request
|
1
2
|
|
2
|
-
|
3
|
+
You can submit bug / issues / feature request using the [`<%= config[:by] %>/<%= config[:name].downcase %>` Project Tracker](<%= config[:issues_url] %>)
|
4
|
+
|
5
|
+
## Advanced Topics
|
3
6
|
|
4
7
|
### Git
|
5
8
|
|
6
|
-
This repository make use of [Git](http://git-scm.com/) such that you should have
|
7
|
-
it installed on your working machine:
|
9
|
+
This repository make use of [Git](http://git-scm.com/) such that you should have it installed on your working machine:
|
8
10
|
|
9
11
|
$> apt-get install git-core # On Debian-like systems
|
10
|
-
|
12
|
+
$> yum install git # On CentOS-like systems
|
11
13
|
$> brew install git # On Mac OS, using [Homebrew](http://mxcl.github.com/homebrew/)
|
12
14
|
$> port install git # On Mac OS, using MacPort
|
13
15
|
|
@@ -42,5 +42,5 @@ Once you have finished to commit your last changes, make the release effective b
|
|
42
42
|
|
43
43
|
$> <%= options[:make] ? 'make release' : 'rake version:release' %>
|
44
44
|
|
45
|
-
|
45
|
+
It will finish the release using `git-flow`, create the appropriate tag in the `<%= FalkorLib::GitFlow.branches(:master) %>` branch and merge all things the way they should be.
|
46
46
|
|
@@ -0,0 +1,38 @@
|
|
1
|
+
This letter is to motivate my request to apply for ...
|
2
|
+
|
3
|
+
Feel free to use the Markdown format to feed this letter
|
4
|
+
|
5
|
+
For instance, here is an enumerated list:
|
6
|
+
|
7
|
+
1. clone the repository
|
8
|
+
2. install `pandoc`
|
9
|
+
3. Install the dependencies
|
10
|
+
a. `texlive-latex-base`
|
11
|
+
b. `latex-beamer`
|
12
|
+
4. Install a reader such as `Skim`
|
13
|
+
|
14
|
+
Footnotes:
|
15
|
+
|
16
|
+
This is from [*Mitch Resnick*](https://en.wikipedia.org/wiki/Mitchel_Resnick).
|
17
|
+
|
18
|
+
> If you learn to read, you can then read to learn.\
|
19
|
+
> If you learn to code, you can then code to learn.[^ted]
|
20
|
+
|
21
|
+
[^ted]: \tiny<http://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code.html>
|
22
|
+
|
23
|
+
etc.
|
24
|
+
|
25
|
+
* item 1
|
26
|
+
* item 2
|
27
|
+
- sub item 1
|
28
|
+
|
29
|
+
The main interest of using markdown is to simplify \LaTeX tables
|
30
|
+
|
31
|
+
|
32
|
+
| Test | col2 | col3 |
|
33
|
+
|--------|------|------|
|
34
|
+
| item 1 | 14 | 28 |
|
35
|
+
| item 2 | 1 | 1 |
|
36
|
+
| | | |
|
37
|
+
|
38
|
+
|
@@ -0,0 +1,154 @@
|
|
1
|
+
% =============================================================================
|
2
|
+
% File: <%= config[:name] %>.tex --
|
3
|
+
% Author(s): <%= config[:author] %> (<%= config[:mail] %>)
|
4
|
+
% Time-stamp: <Fri 2015-10-09 20:05 svarrette>
|
5
|
+
%
|
6
|
+
% Copyright (c) <%= Time.now.year %> <%= config[:author] %><Sebastien.Varrette@uni.lu>
|
7
|
+
%
|
8
|
+
% For more information:
|
9
|
+
% - LaTeX: http://www.latex-project.org/
|
10
|
+
% - LaTeX symbol list:
|
11
|
+
% http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-a4.pdf
|
12
|
+
% =============================================================================
|
13
|
+
|
14
|
+
\documentclass[11pt,a4paper]{letter}
|
15
|
+
|
16
|
+
\usepackage{_style}
|
17
|
+
\usepackage{microtype} % Improves typography
|
18
|
+
|
19
|
+
\graphicspath{{images/}} % Add this directory to the searched paths for graphics
|
20
|
+
|
21
|
+
% Create a new command for the horizontal rule in the document which allows thickness specification
|
22
|
+
\makeatletter
|
23
|
+
\def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@}
|
24
|
+
\makeatother
|
25
|
+
|
26
|
+
% ----------------------------------------------------------------------------------------
|
27
|
+
% DOCUMENT MARGINS
|
28
|
+
% ----------------------------------------------------------------------------------------
|
29
|
+
|
30
|
+
\textwidth 6.7in
|
31
|
+
\textheight 9.75in
|
32
|
+
\oddsidemargin -.25in
|
33
|
+
\evensidemargin -.25in
|
34
|
+
\topmargin -1in
|
35
|
+
\rightmargin 1in
|
36
|
+
\longindentation 0.50\textwidth
|
37
|
+
\parindent 0.4in
|
38
|
+
|
39
|
+
% ----------------------------------------------------------------------------------------
|
40
|
+
% SENDER INFORMATION
|
41
|
+
% ----------------------------------------------------------------------------------------
|
42
|
+
|
43
|
+
\def\Location{<%= config[:location] %>} % Location
|
44
|
+
\def\Who{<%= config[:author] %>} % Your name
|
45
|
+
\def\What{<%= config[:author_title] %>} % Your title
|
46
|
+
\def\Where{<%= config[:department] %> (<%= config[:department_acro] %>)} % Your department/institution
|
47
|
+
\def\Address{<%= config[:address] %>} % Your address
|
48
|
+
\def\CityZip{<%= config[:zipcode] %>, <%= config[:location] %>} % Your city, zip code, country, etc
|
49
|
+
\def\Email{E-mail: \href{mailto:<%= config[:mail] %>}{<%= config[:mail] %>}} % Your email address
|
50
|
+
\def\TEL{Phone: <%= config[:phone] %>} % Your phone number
|
51
|
+
\def\URL{} %URL: http://csc.uni.lu/sebastien.varrette} % Your URL
|
52
|
+
|
53
|
+
% ----------------------------------------------------------------------------------------
|
54
|
+
% HEADER AND FROM ADDRESS STRUCTURE
|
55
|
+
% ----------------------------------------------------------------------------------------
|
56
|
+
|
57
|
+
\address{
|
58
|
+
\includegraphics[width=1in]{<%= config[:logo] %>} % Include the logo of your institution
|
59
|
+
\hspace{5.1in} % Position of the institution logo, increase to move left, decrease to move right
|
60
|
+
\vskip -1.07in~\\ % Position of the text in relation to the institution logo, increase to move down, decrease to move up
|
61
|
+
\Large\hspace{1.5in}\hfill ~\\[0.05in] % First line of institution name, adjust hspace if your logo is wide
|
62
|
+
\hspace{1.5in}\hfill \normalsize % Second line of institution name, adjust hspace if your logo is wide
|
63
|
+
\makebox[0ex][r]{\bf \Who \What }\hspace{0.08in} % Print your name and title with a little whitespace to the right
|
64
|
+
~\\[-0.11in] % Reduce the whitespace above the horizontal rule
|
65
|
+
\hspace{1.5in}\vhrulefill{1pt} \\ % Horizontal rule, adjust hspace if your logo is wide and \vhrulefill for the thickness of the rule
|
66
|
+
\hspace{\fill}\parbox[t]{3.85in}{ % Create a box for your details underneath the horizontal rule on the right
|
67
|
+
\footnotesize % Use a smaller font size for the details
|
68
|
+
%\Who \\ \em % Your name, all text after this will be italicized
|
69
|
+
\Where\\ % Your department
|
70
|
+
\Address\\ % Your address
|
71
|
+
\CityZip\\ % Your city and zip code
|
72
|
+
\TEL\\ % Your phone number
|
73
|
+
\Email\\[2em] % Your email address
|
74
|
+
%\URL % Your URL
|
75
|
+
\Location, \today
|
76
|
+
}
|
77
|
+
\hspace{-1.4in} % Horizontal position of this block, increase to move left, decrease to move right
|
78
|
+
\vspace{-1in} % Move the letter content up for a more compact look
|
79
|
+
}
|
80
|
+
|
81
|
+
% ----------------------------------------------------------------------------------------
|
82
|
+
% TO ADDRESS STRUCTURE
|
83
|
+
% ----------------------------------------------------------------------------------------
|
84
|
+
|
85
|
+
\def\opening#1{\thispagestyle{empty}
|
86
|
+
%\hfill \Location, \today
|
87
|
+
{\centering\fromaddress \vspace{0.6in} \\ % Print the header and from address here, add whitespace to move date down
|
88
|
+
%\hspace*{\longindentation}\today\hspace*{\fill}
|
89
|
+
\par} % Print today's date, remove \today to not display it
|
90
|
+
{\raggedright \toname \\ \toaddress \par} % Print the to name and address
|
91
|
+
\vspace{0.4in} % White space after the to address
|
92
|
+
\noindent #1 % Print the opening line
|
93
|
+
% Uncomment the 4 lines below to print a footnote with custom text
|
94
|
+
% \def\thefootnote{}
|
95
|
+
% \def\footnoterule{\hrule}
|
96
|
+
% \footnotetext{\hspace*{\fill}{\footnotesize\em Footnote text}}
|
97
|
+
% \def\thefootnote{\arabic{footnote}}
|
98
|
+
}
|
99
|
+
|
100
|
+
% ----------------------------------------------------------------------------------------
|
101
|
+
% SIGNATURE STRUCTURE
|
102
|
+
% ----------------------------------------------------------------------------------------
|
103
|
+
|
104
|
+
\signature{\Who \What} % The signature is a combination of your name and title
|
105
|
+
|
106
|
+
\long\def\closing#1{
|
107
|
+
\vspace{0.1in} % Some whitespace after the letter content and before the signature
|
108
|
+
\noindent % Stop paragraph indentation
|
109
|
+
\hspace*{\longindentation} % Move the signature right
|
110
|
+
\parbox{\indentedwidth}{\raggedright
|
111
|
+
#1 % Print the signature text
|
112
|
+
\vskip 0.65in % Whitespace between the signature text and your name
|
113
|
+
\fromsig}} % Print your name and title
|
114
|
+
|
115
|
+
% ----------------------------------------------------------------------------------------
|
116
|
+
|
117
|
+
\begin{document}
|
118
|
+
|
119
|
+
% ----------------------------------------------------------------------------------------
|
120
|
+
% TO ADDRESS
|
121
|
+
% ----------------------------------------------------------------------------------------
|
122
|
+
|
123
|
+
\begin{letter}
|
124
|
+
{
|
125
|
+
% To
|
126
|
+
}
|
127
|
+
|
128
|
+
% ----------------------------------------------------------------------------------------
|
129
|
+
% LETTER CONTENT
|
130
|
+
% ----------------------------------------------------------------------------------------
|
131
|
+
|
132
|
+
\opening{To whom it may concern,}
|
133
|
+
|
134
|
+
\input{_content.md}
|
135
|
+
|
136
|
+
\closing{Sincerely,}
|
137
|
+
|
138
|
+
% ----------------------------------------------------------------------------------------
|
139
|
+
|
140
|
+
\end{letter}
|
141
|
+
|
142
|
+
%\bibliography{biblio.bib}
|
143
|
+
|
144
|
+
\end{document}
|
145
|
+
|
146
|
+
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
147
|
+
% eof
|
148
|
+
%
|
149
|
+
% Local Variables:
|
150
|
+
% mode: latex
|
151
|
+
% mode: flyspell
|
152
|
+
% mode: visual-line
|
153
|
+
% TeX-master: "<%= config[:name] %>.tex"
|
154
|
+
% End:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: falkorlib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastien Varrette
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -414,12 +414,13 @@ files:
|
|
414
414
|
- templates/Rakefile/footer_rakefile.erb
|
415
415
|
- templates/Rakefile/header_rakefile.erb
|
416
416
|
- templates/Rakefile/rakefile_gitflow.erb
|
417
|
-
- templates/latex/beamer/.texinfo/main.tex.el
|
418
417
|
- templates/latex/beamer/_content.md.erb
|
419
418
|
- templates/latex/beamer/main.tex.erb
|
420
419
|
- templates/latex/images/logo_UL.pdf
|
421
420
|
- templates/latex/images/logo_ULHPC.pdf
|
422
421
|
- templates/latex/images/question.jpg
|
422
|
+
- templates/latex/letter/_content.md.erb
|
423
|
+
- templates/latex/letter/main.tex.erb
|
423
424
|
- templates/motd/motd.erb
|
424
425
|
- templates/puppet/modules/.gitignore
|
425
426
|
- templates/puppet/modules/.pmtignore
|
@@ -1,21 +0,0 @@
|
|
1
|
-
(TeX-add-style-hook
|
2
|
-
"main.tex"
|
3
|
-
(lambda ()
|
4
|
-
(add-to-list 'LaTeX-verbatim-environments-local "semiverbatim")
|
5
|
-
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperref")
|
6
|
-
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperimage")
|
7
|
-
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "hyperbaseurl")
|
8
|
-
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "nolinkurl")
|
9
|
-
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "url")
|
10
|
-
(add-to-list 'LaTeX-verbatim-macros-with-braces-local "path")
|
11
|
-
(add-to-list 'LaTeX-verbatim-macros-with-delims-local "url")
|
12
|
-
(add-to-list 'LaTeX-verbatim-macros-with-delims-local "path")
|
13
|
-
(TeX-run-style-hooks
|
14
|
-
"latex2e"
|
15
|
-
"_content"
|
16
|
-
"beamer"
|
17
|
-
"beamer10"
|
18
|
-
"_style")
|
19
|
-
(LaTeX-add-counters
|
20
|
-
"finalframe")))
|
21
|
-
|