MacBook-Pro-de-Oscar.local 2026-2-15:19:22:8
This commit is contained in:
4
.obsidian/community-plugins.json
vendored
4
.obsidian/community-plugins.json
vendored
@@ -40,5 +40,7 @@
|
|||||||
"obsidian-pandoc-reference-list",
|
"obsidian-pandoc-reference-list",
|
||||||
"excalibrain",
|
"excalibrain",
|
||||||
"obsidian-daily-note-outline",
|
"obsidian-daily-note-outline",
|
||||||
"obsidian-kanban"
|
"obsidian-kanban",
|
||||||
|
"obsidian-pandoc",
|
||||||
|
"obsidian-enhancing-export"
|
||||||
]
|
]
|
||||||
63
.obsidian/plugins/obsidian-enhancing-export/data.json
vendored
Normal file
63
.obsidian/plugins/obsidian-enhancing-export/data.json
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"name": "Markdown"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Markdown (Hugo)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TextBundle"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Typst"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PDF"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Word (.docx)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OpenOffice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "RTF"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Epub"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Latex"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Media Wiki"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "reStructuredText"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Textile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OPML"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Bibliography"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PowerPoint (.pptx)"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"defaultExportDirectoryMode": "Custom",
|
||||||
|
"openExportedFile": true,
|
||||||
|
"env": {},
|
||||||
|
"showExportProgressBar": true,
|
||||||
|
"lastExportDirectory": {
|
||||||
|
"darwin": "/Users/oscarplaisant/Downloads"
|
||||||
|
},
|
||||||
|
"lastExportType": "Word (.docx)"
|
||||||
|
}
|
||||||
6
.obsidian/plugins/obsidian-enhancing-export/lua/citefilter.lua
vendored
Normal file
6
.obsidian/plugins/obsidian-enhancing-export/lua/citefilter.lua
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
-- credits to tarleb — StackExchange: https://tex.stackexchange.com/questions/392070/pandoc-markdown-create-self-contained-bib-file-from-cited-references
|
||||||
|
function Pandoc(d)
|
||||||
|
d.meta.references = pandoc.utils.references(d)
|
||||||
|
d.meta.bibliography = nil
|
||||||
|
return d
|
||||||
|
end
|
||||||
5
.obsidian/plugins/obsidian-enhancing-export/lua/markdown+hugo.lua
vendored
Normal file
5
.obsidian/plugins/obsidian-enhancing-export/lua/markdown+hugo.lua
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package.path=package.path..";" ..debug.getinfo(1).source:match("(.*[/\\])"):sub(2) .. "?.lua"
|
||||||
|
|
||||||
|
Mode='hugo'
|
||||||
|
|
||||||
|
require('markdown')
|
||||||
237
.obsidian/plugins/obsidian-enhancing-export/lua/markdown.lua
vendored
Normal file
237
.obsidian/plugins/obsidian-enhancing-export/lua/markdown.lua
vendored
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
package.path=debug.getinfo(1).source:gsub('@',''):sub(0):match('(.*[/\\])'):sub(0) .. '?.lua' .. ';' .. package.path
|
||||||
|
|
||||||
|
require("polyfill")
|
||||||
|
local url = require('url')
|
||||||
|
|
||||||
|
local pandoc=pandoc
|
||||||
|
local PANDOC_STATE=PANDOC_STATE
|
||||||
|
|
||||||
|
PANDOC_VERSION:must_be_at_least '3.1.7'
|
||||||
|
|
||||||
|
os.text = pandoc.text
|
||||||
|
|
||||||
|
local PATH = pandoc.path
|
||||||
|
local doc_dir = nil
|
||||||
|
local media_dir = nil
|
||||||
|
|
||||||
|
if Mode == nil then
|
||||||
|
Mode = 'default'
|
||||||
|
end
|
||||||
|
|
||||||
|
-- print("Mode: "..Mode)
|
||||||
|
|
||||||
|
if PANDOC_STATE.output_file then
|
||||||
|
local output_file = PANDOC_STATE.output_file
|
||||||
|
doc_dir = PATH.directory(output_file)
|
||||||
|
if PANDOC_WRITER_OPTIONS.variables["media_dir"] then
|
||||||
|
media_dir = tostring(PANDOC_WRITER_OPTIONS.variables["media_dir"])
|
||||||
|
else
|
||||||
|
media_dir = PATH.split_extension(output_file)
|
||||||
|
if Mode ~= 'hugo' then
|
||||||
|
media_dir = media_dir .. '-media'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
assert(doc_dir, "doc_dir is nil")
|
||||||
|
assert(media_dir, "media_dir is nil")
|
||||||
|
|
||||||
|
|
||||||
|
local function get_absolute_path(file_path)
|
||||||
|
if PATH.is_absolute(file_path) then
|
||||||
|
return file_path
|
||||||
|
end
|
||||||
|
for _, dir in pairs(PANDOC_STATE.resource_path) do
|
||||||
|
local full_path = PATH.join({dir, file_path})
|
||||||
|
if os.exists(full_path) then
|
||||||
|
return full_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for _, file in pairs(PANDOC_STATE.input_files) do
|
||||||
|
if not PATH.is_absolute(file) then
|
||||||
|
file = PATH.join({pandoc.system.get_working_directory(), file_path})
|
||||||
|
end
|
||||||
|
local dir = PATH.directory(file)
|
||||||
|
local full_path = PATH.join({dir, file_path})
|
||||||
|
if os.exists(full_path) then
|
||||||
|
return full_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_output_file(file_path)
|
||||||
|
if media_dir then
|
||||||
|
local new_file_name = pandoc.utils.sha1(file_path)
|
||||||
|
local _, new_file_ext = PATH.split_extension(file_path)
|
||||||
|
file_path = new_file_name .. new_file_ext
|
||||||
|
local full_path = PATH.join({media_dir, file_path})
|
||||||
|
return full_path
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function extract_media(file_path)
|
||||||
|
os.mkdir(media_dir)
|
||||||
|
file_path = url.decode(file_path)
|
||||||
|
local abs_path = get_absolute_path(file_path)
|
||||||
|
local file = get_output_file(file_path)
|
||||||
|
if abs_path and file then
|
||||||
|
if not os.exists(file) then
|
||||||
|
os.copy(abs_path, file)
|
||||||
|
end
|
||||||
|
local rel_path = PATH.make_relative(file, doc_dir, false)
|
||||||
|
local parts = PATH.split(rel_path)
|
||||||
|
for i,v in ipairs(parts) do
|
||||||
|
parts[i] = url.encode(v)
|
||||||
|
end
|
||||||
|
local encoded_rel_path = table.concat(parts, "/")
|
||||||
|
if Mode == 'hugo' then
|
||||||
|
encoded_rel_path = '../' .. encoded_rel_path
|
||||||
|
end
|
||||||
|
return encoded_rel_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function raw(s)
|
||||||
|
return pandoc.RawInline('markdown', s)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Image(el)
|
||||||
|
local src = extract_media(el.src)
|
||||||
|
if src then
|
||||||
|
el.src = src
|
||||||
|
end
|
||||||
|
return el
|
||||||
|
end
|
||||||
|
|
||||||
|
function Space()
|
||||||
|
return raw(' ')
|
||||||
|
end
|
||||||
|
|
||||||
|
function SoftBreak()
|
||||||
|
return raw('\n')
|
||||||
|
end
|
||||||
|
|
||||||
|
function RawInline(el)
|
||||||
|
if el.format == "html" then
|
||||||
|
el.format = 'markdown'
|
||||||
|
el.text = string.gsub(el.text, '<img[^>]+>', function(img)
|
||||||
|
return string.gsub(img, 'src="([^"]+)"', function(url)
|
||||||
|
if string.find(url, '^[Hh][Tt][Tt][Pp][Ss]?://') == nil then
|
||||||
|
local extract_media_url = extract_media(url)
|
||||||
|
if extract_media_url then
|
||||||
|
return 'src="' .. extract_media_url .. '"'
|
||||||
|
end
|
||||||
|
return '123'
|
||||||
|
end
|
||||||
|
return 'src="' .. url .. '"'
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
return el
|
||||||
|
end
|
||||||
|
|
||||||
|
function RawBlock(el)
|
||||||
|
if el.format == "html" then
|
||||||
|
el.format = 'markdown'
|
||||||
|
end
|
||||||
|
return el
|
||||||
|
end
|
||||||
|
|
||||||
|
function Math(el)
|
||||||
|
if Mode == 'hugo' then
|
||||||
|
if el.mathtype == 'DisplayMath' then
|
||||||
|
return raw('{{< mathjax >}}\n$$' .. el.text .. '$$\n{{</mathjax >}}')
|
||||||
|
else
|
||||||
|
el.text = string.gsub(el.text, '\\[\\{\\}]', function (v)
|
||||||
|
return '\\' .. v
|
||||||
|
end)
|
||||||
|
el.text = string.gsub(el.text, '_', function (v)
|
||||||
|
return '\\' .. v
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return el
|
||||||
|
end
|
||||||
|
|
||||||
|
local function headerLink(input)
|
||||||
|
-- github style section link
|
||||||
|
return "#"..input:gsub(' ', '-')
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function insertLink(content, linkDescription)
|
||||||
|
local descriptionText = table.concat(linkDescription, "")
|
||||||
|
|
||||||
|
if string.find(descriptionText, '|') then
|
||||||
|
local target, desc = descriptionText:match("(.*)|(.*)")
|
||||||
|
table.insert(content, pandoc.Link(desc, headerLink(target)))
|
||||||
|
else
|
||||||
|
table.insert(content, pandoc.Link(descriptionText, headerLink(descriptionText)))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Para(el)
|
||||||
|
local content = el.content
|
||||||
|
content = ProcessMath(content)
|
||||||
|
content = ProcessInternalLinks(content)
|
||||||
|
el.content = content
|
||||||
|
return el
|
||||||
|
end
|
||||||
|
|
||||||
|
function ProcessMath(elements)
|
||||||
|
local content = {}
|
||||||
|
local in_display_math = false
|
||||||
|
for _, item in pairs(elements) do
|
||||||
|
if item.t == 'Str'and item.text == "$$" then
|
||||||
|
in_display_math = not in_display_math
|
||||||
|
else
|
||||||
|
if in_display_math then
|
||||||
|
if item.t == 'RawInline' and item.format == 'tex' then
|
||||||
|
local n = pandoc.Math('DisplayMath', '\n' .. item.text .. '\n')
|
||||||
|
table.insert(content, Math(n))
|
||||||
|
else
|
||||||
|
table.insert(content, item)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
table.insert(content, item)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return content
|
||||||
|
end
|
||||||
|
|
||||||
|
function ProcessInternalLinks(elements)
|
||||||
|
local content = {}
|
||||||
|
local in_section_link = false
|
||||||
|
local linkDescription = {}
|
||||||
|
|
||||||
|
for _, item in pairs(elements) do
|
||||||
|
if item.t == 'Str' and string.starts_with(item.text, '[[#') then
|
||||||
|
in_section_link = true
|
||||||
|
table.insert(linkDescription, string.sub(item.text, 4))
|
||||||
|
elseif in_section_link then
|
||||||
|
if string.ends_with(item.text, ']]') then
|
||||||
|
table.insert(linkDescription, string.sub(item.text, 1, -3))
|
||||||
|
insertLink(content, linkDescription)
|
||||||
|
in_section_link = false
|
||||||
|
linkDescription = {}
|
||||||
|
else
|
||||||
|
table.insert(linkDescription, item.text)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
table.insert(content, item)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return content
|
||||||
|
end
|
||||||
|
|
||||||
|
function Plain(el)
|
||||||
|
el.content = ProcessInternalLinks(el.content)
|
||||||
|
return el
|
||||||
|
end
|
||||||
|
|
||||||
|
function Pandoc(el)
|
||||||
|
return el
|
||||||
|
end
|
||||||
68
.obsidian/plugins/obsidian-enhancing-export/lua/math_block.lua
vendored
Normal file
68
.obsidian/plugins/obsidian-enhancing-export/lua/math_block.lua
vendored
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
traverse = 'topdown'
|
||||||
|
|
||||||
|
math_block_text = nil
|
||||||
|
function process(el)
|
||||||
|
|
||||||
|
-- MathBlock start or end
|
||||||
|
if el.t == 'Str' and el.text == '$$' then
|
||||||
|
if math_block_text == nil then -- start
|
||||||
|
math_block_text = ''
|
||||||
|
else -- end
|
||||||
|
local math_block = pandoc.Math('DisplayMath', '\n' .. math_block_text .. '\n')
|
||||||
|
math_block_text = nil
|
||||||
|
return math_block
|
||||||
|
end
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
|
if math_block_text then
|
||||||
|
if (el.t == 'RawInline' or el.t == 'RawBlock') and el.format == 'tex' then
|
||||||
|
math_block_text = math_block_text .. el.text
|
||||||
|
return {}
|
||||||
|
elseif el.t == 'Str' then
|
||||||
|
math_block_text = math_block_text .. el.text
|
||||||
|
return {}
|
||||||
|
elseif el.t == 'SoftBreak' or el.t == 'BulletList' then
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return el
|
||||||
|
end
|
||||||
|
|
||||||
|
function RawInline(el)
|
||||||
|
return process(el)
|
||||||
|
end
|
||||||
|
|
||||||
|
function RawBlock(el)
|
||||||
|
return process(el)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Str(el)
|
||||||
|
return process(el)
|
||||||
|
end
|
||||||
|
|
||||||
|
function SoftBreak(el)
|
||||||
|
return process(el)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Header(el)
|
||||||
|
return process(el)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Para(el)
|
||||||
|
return process(el)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Plain(el)
|
||||||
|
return process(el)
|
||||||
|
end
|
||||||
|
|
||||||
|
function BulletList(el)
|
||||||
|
return process(el)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
18
.obsidian/plugins/obsidian-enhancing-export/lua/newline_to_para.lua
vendored
Normal file
18
.obsidian/plugins/obsidian-enhancing-export/lua/newline_to_para.lua
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
function Para(el)
|
||||||
|
local blocks = {}
|
||||||
|
local inlines = {}
|
||||||
|
for _, inline in ipairs(el.content) do
|
||||||
|
if inline.t == "SoftBreak" or inline.t == "LineBreak" then
|
||||||
|
if #inlines > 0 then
|
||||||
|
table.insert(blocks, pandoc.Para(inlines))
|
||||||
|
inlines = {}
|
||||||
|
end
|
||||||
|
else
|
||||||
|
table.insert(inlines, inline)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if #inlines > 0 then
|
||||||
|
table.insert(blocks, pandoc.Para(inlines))
|
||||||
|
end
|
||||||
|
return blocks
|
||||||
|
end
|
||||||
50
.obsidian/plugins/obsidian-enhancing-export/lua/pdf.lua
vendored
Normal file
50
.obsidian/plugins/obsidian-enhancing-export/lua/pdf.lua
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
-- minimum supported version for full environment
|
||||||
|
-- support is 3.8.unkown yet to be released but probably 3
|
||||||
|
local environment_fully_supported_version = pandoc.types.Version('3.8.3')
|
||||||
|
local environment_partially_supported_version = pandoc.types.Version('3.8.0')
|
||||||
|
local is_partially_supported = PANDOC_VERSION >= environment_partially_supported_version
|
||||||
|
local problamatic_environments = {
|
||||||
|
displaymath = true,
|
||||||
|
math = true,
|
||||||
|
equation = true,
|
||||||
|
["equation*"] = true,
|
||||||
|
gather = true,
|
||||||
|
["gather*"] = true,
|
||||||
|
multline = true,
|
||||||
|
["multline*"] = true,
|
||||||
|
eqnarray = true,
|
||||||
|
["eqnarray*"] = true,
|
||||||
|
align = true,
|
||||||
|
["align*"] = true,
|
||||||
|
alignat = true,
|
||||||
|
["alignat*"] = true,
|
||||||
|
flalign = true,
|
||||||
|
["flalign*"] = true,
|
||||||
|
}
|
||||||
|
if is_partially_supported then
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
Math = function(elem)
|
||||||
|
if elem.text:find("^%s*\\begin{") ~= nil then
|
||||||
|
local replacement = pandoc.text:gsub(elem.text, "^%s*\\begin{(.-)}", "\\begin{%1}"):gsub("\\end{(.-)}%s*$", "\\end{%1}")
|
||||||
|
return pandoc.Math(replacement, elem.mathtype)
|
||||||
|
else
|
||||||
|
return elem
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif not environment_fully_supported_version then
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
Math = function(elem)
|
||||||
|
local result = elem.text:match("^%s*\\begin{(%a+%*?)}")
|
||||||
|
if result ~= nil and problamatic_environments[result] ~= nil then
|
||||||
|
return pandoc.RawInline('tex', elem.text)
|
||||||
|
else
|
||||||
|
return elem
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
61
.obsidian/plugins/obsidian-enhancing-export/lua/polyfill.lua
vendored
Normal file
61
.obsidian/plugins/obsidian-enhancing-export/lua/polyfill.lua
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
os.platform = nil
|
||||||
|
if os.platform == nil then
|
||||||
|
local libExt = package.cpath:match("%p[\\|/]?\\.%p(%a+)")
|
||||||
|
if libExt == 'dll' then
|
||||||
|
os.platform = "Windows"
|
||||||
|
elseif libExt == 'so' then
|
||||||
|
os.platform = "Linux"
|
||||||
|
elseif libExt == 'dylib' then
|
||||||
|
os.platform = "MacOS"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
os.copy = function(src, dest)
|
||||||
|
if os.platform == "Windows" then
|
||||||
|
src = string.gsub(src, "/", "\\")
|
||||||
|
src = os.text.toencoding(src)
|
||||||
|
dest = os.text.toencoding(dest)
|
||||||
|
os.execute('copy "' .. src .. '" "' .. dest .. '" >NUL')
|
||||||
|
else
|
||||||
|
os.execute('cp "' .. src .. '" "' .. dest .. '"')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
os.mkdir = function(dir)
|
||||||
|
if os.exists(dir) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if os.platform == "Windows" then
|
||||||
|
dir = os.text.toencoding(dir)
|
||||||
|
os.execute('mkdir "' .. dir .. '"')
|
||||||
|
else
|
||||||
|
os.execute('mkdir -p "' .. dir .. '"')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
os.exists = function(path)
|
||||||
|
if os.platform == "Windows" then
|
||||||
|
path = string.gsub(path, "/", "\\")
|
||||||
|
path = os.text.toencoding(path)
|
||||||
|
local _, _, code = os.execute('if exist "' .. path .. '" (exit 0) else (exit 1)')
|
||||||
|
return code == 0
|
||||||
|
else
|
||||||
|
local _, _, code = os.execute('test -e "' .. path .. '"')
|
||||||
|
return code == 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
string.starts_with = function(str, start)
|
||||||
|
return str:sub(1, #start) == start
|
||||||
|
end
|
||||||
|
|
||||||
|
string.ends_with = function(str, ending)
|
||||||
|
return ending == "" or str:sub(-#ending) == ending
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
return {
|
||||||
|
os = os,
|
||||||
|
string = string
|
||||||
|
}
|
||||||
9
.obsidian/plugins/obsidian-enhancing-export/lua/shift_headings.lua
vendored
Normal file
9
.obsidian/plugins/obsidian-enhancing-export/lua/shift_headings.lua
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
function Header(el)
|
||||||
|
if el.level == 1 then
|
||||||
|
return pandoc.Div(pandoc.Para(el.content), {['custom-style'] = 'Title'})
|
||||||
|
elseif el.level > 1 then
|
||||||
|
el.level = el.level - 1
|
||||||
|
return el
|
||||||
|
end
|
||||||
|
return el
|
||||||
|
end
|
||||||
18
.obsidian/plugins/obsidian-enhancing-export/lua/url.lua
vendored
Normal file
18
.obsidian/plugins/obsidian-enhancing-export/lua/url.lua
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
local function encode (str)
|
||||||
|
str = string.gsub (str, "([^0-9a-zA-Z !'()*._~-])", -- locale independent
|
||||||
|
function (c) return string.format ("%%%02X", string.byte(c)) end)
|
||||||
|
str = string.gsub (str, " ", "%%20")
|
||||||
|
return str
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function decode (str)
|
||||||
|
str = string.gsub (str, "%%20", " ")
|
||||||
|
str = string.gsub (str, "%%(%x%x)", function(h) return string.char(tonumber(h,16)) end)
|
||||||
|
return str
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
encode = encode,
|
||||||
|
decode = decode
|
||||||
|
}
|
||||||
32
.obsidian/plugins/obsidian-enhancing-export/main.js
vendored
Normal file
32
.obsidian/plugins/obsidian-enhancing-export/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/obsidian-enhancing-export/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-enhancing-export/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "obsidian-enhancing-export",
|
||||||
|
"name": "Enhancing Export",
|
||||||
|
"version": "1.11.1",
|
||||||
|
"minAppVersion": "1.6.3",
|
||||||
|
"description": "This is a enhancing export plugin for Obsidian. It allows to export to formats like Html, DOCX, ePub and PDF or Markdown(Hugo) etc.",
|
||||||
|
"author": "YISH",
|
||||||
|
"authorUrl": "https://github.com/mokeyish",
|
||||||
|
"isDesktopOnly": true
|
||||||
|
}
|
||||||
1
.obsidian/plugins/obsidian-enhancing-export/styles.css
vendored
Normal file
1
.obsidian/plugins/obsidian-enhancing-export/styles.css
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.setting-item.ex-setting-item{border-top:unset;padding-top:0}*[hidden]{display:none}
|
||||||
1210
.obsidian/plugins/obsidian-enhancing-export/textemplate/dissertation.tex
vendored
Normal file
1210
.obsidian/plugins/obsidian-enhancing-export/textemplate/dissertation.tex
vendored
Normal file
File diff suppressed because it is too large
Load Diff
373
.obsidian/plugins/obsidian-enhancing-export/textemplate/neurips.sty
vendored
Normal file
373
.obsidian/plugins/obsidian-enhancing-export/textemplate/neurips.sty
vendored
Normal file
@@ -0,0 +1,373 @@
|
|||||||
|
% partial rewrite of the LaTeX2e package for submissions to the
|
||||||
|
% Conference on Neural Information Processing Systems (NeurIPS):
|
||||||
|
%
|
||||||
|
% - uses more LaTeX conventions
|
||||||
|
% - line numbers at submission time replaced with aligned numbers from
|
||||||
|
% lineno package
|
||||||
|
% - \nipsfinalcopy replaced with [final] package option
|
||||||
|
% - automatically loads times package for authors
|
||||||
|
% - loads natbib automatically; this can be suppressed with the
|
||||||
|
% [nonatbib] package option
|
||||||
|
% - adds foot line to first page identifying the conference
|
||||||
|
% - adds preprint option for submission to e.g. arXiv
|
||||||
|
% - conference acronym modified
|
||||||
|
%
|
||||||
|
% Roman Garnett (garnett@wustl.edu) and the many authors of
|
||||||
|
% nips15submit_e.sty, including MK and drstrip@sandia
|
||||||
|
%
|
||||||
|
% last revision: March 2023
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{neurips}[2023/03/31 NeurIPS 2023 submission/camera-ready style file]
|
||||||
|
|
||||||
|
% declare final option, which creates camera-ready copy
|
||||||
|
\newif\if@neuripsfinal\@neuripsfinalfalse
|
||||||
|
\DeclareOption{final}{
|
||||||
|
\@neuripsfinaltrue
|
||||||
|
}
|
||||||
|
|
||||||
|
% declare nonatbib option, which does not load natbib in case of
|
||||||
|
% package clash (users can pass options to natbib via
|
||||||
|
% \PassOptionsToPackage)
|
||||||
|
\newif\if@natbib\@natbibtrue
|
||||||
|
\DeclareOption{nonatbib}{
|
||||||
|
\@natbibfalse
|
||||||
|
}
|
||||||
|
|
||||||
|
% declare preprint option, which creates a preprint version ready for
|
||||||
|
% upload to, e.g., arXiv
|
||||||
|
\newif\if@preprint\@preprintfalse
|
||||||
|
\DeclareOption{preprint}{
|
||||||
|
\@preprinttrue
|
||||||
|
}
|
||||||
|
|
||||||
|
\ProcessOptions\relax
|
||||||
|
|
||||||
|
% determine whether this is an anonymized submission
|
||||||
|
\newif\if@submission\@submissiontrue
|
||||||
|
\if@neuripsfinal\@submissionfalse\fi
|
||||||
|
\if@preprint\@submissionfalse\fi
|
||||||
|
|
||||||
|
% fonts
|
||||||
|
\renewcommand{\rmdefault}{ptm}
|
||||||
|
\renewcommand{\sfdefault}{phv}
|
||||||
|
|
||||||
|
% change this every year for notice string at bottom
|
||||||
|
\newcommand{\@neuripsordinal}{}
|
||||||
|
\newcommand{\@neuripsyear}{\the\year}
|
||||||
|
\newcommand{\@neuripslocation}{}
|
||||||
|
|
||||||
|
% acknowledgments
|
||||||
|
\usepackage{environ}
|
||||||
|
\newcommand{\acksection}{\section*{Acknowledgments and Disclosure of Funding}}
|
||||||
|
\NewEnviron{ack}{%
|
||||||
|
\acksection
|
||||||
|
\BODY
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
% load natbib unless told otherwise
|
||||||
|
\if@natbib
|
||||||
|
\RequirePackage{natbib}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% set page geometry
|
||||||
|
\usepackage[verbose=true,letterpaper]{geometry}
|
||||||
|
\AtBeginDocument{
|
||||||
|
\newgeometry{
|
||||||
|
textheight=9in,
|
||||||
|
textwidth=5.5in,
|
||||||
|
top=1in,
|
||||||
|
headheight=12pt,
|
||||||
|
headsep=25pt,
|
||||||
|
footskip=30pt
|
||||||
|
}
|
||||||
|
\@ifpackageloaded{fullpage}
|
||||||
|
{\PackageWarning{neurips_2023}{fullpage package not allowed! Overwriting formatting.}}
|
||||||
|
{}
|
||||||
|
}
|
||||||
|
|
||||||
|
\widowpenalty=10000
|
||||||
|
\clubpenalty=10000
|
||||||
|
\flushbottom
|
||||||
|
\sloppy
|
||||||
|
|
||||||
|
|
||||||
|
% font sizes with reduced leading
|
||||||
|
\renewcommand{\normalsize}{%
|
||||||
|
\@setfontsize\normalsize\@xpt\@xipt
|
||||||
|
\abovedisplayskip 7\p@ \@plus 2\p@ \@minus 5\p@
|
||||||
|
\abovedisplayshortskip \z@ \@plus 3\p@
|
||||||
|
\belowdisplayskip \abovedisplayskip
|
||||||
|
\belowdisplayshortskip 4\p@ \@plus 3\p@ \@minus 3\p@
|
||||||
|
}
|
||||||
|
\normalsize
|
||||||
|
\renewcommand{\small}{%
|
||||||
|
\@setfontsize\small\@ixpt\@xpt
|
||||||
|
\abovedisplayskip 6\p@ \@plus 1.5\p@ \@minus 4\p@
|
||||||
|
\abovedisplayshortskip \z@ \@plus 2\p@
|
||||||
|
\belowdisplayskip \abovedisplayskip
|
||||||
|
\belowdisplayshortskip 3\p@ \@plus 2\p@ \@minus 2\p@
|
||||||
|
}
|
||||||
|
\renewcommand{\footnotesize}{\@setfontsize\footnotesize\@ixpt\@xpt}
|
||||||
|
\renewcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt}
|
||||||
|
\renewcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt}
|
||||||
|
\renewcommand{\large}{\@setfontsize\large\@xiipt{14}}
|
||||||
|
\renewcommand{\Large}{\@setfontsize\Large\@xivpt{16}}
|
||||||
|
\renewcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{20}}
|
||||||
|
\renewcommand{\huge}{\@setfontsize\huge\@xxpt{23}}
|
||||||
|
\renewcommand{\Huge}{\@setfontsize\Huge\@xxvpt{28}}
|
||||||
|
|
||||||
|
% sections with less space
|
||||||
|
\providecommand{\section}{}
|
||||||
|
\renewcommand{\section}{%
|
||||||
|
\@startsection{section}{1}{\z@}%
|
||||||
|
{-2.0ex \@plus -0.5ex \@minus -0.2ex}%
|
||||||
|
{ 1.5ex \@plus 0.3ex \@minus 0.2ex}%
|
||||||
|
{\large\bf\raggedright}%
|
||||||
|
}
|
||||||
|
\providecommand{\subsection}{}
|
||||||
|
\renewcommand{\subsection}{%
|
||||||
|
\@startsection{subsection}{2}{\z@}%
|
||||||
|
{-1.8ex \@plus -0.5ex \@minus -0.2ex}%
|
||||||
|
{ 0.8ex \@plus 0.2ex}%
|
||||||
|
{\normalsize\bf\raggedright}%
|
||||||
|
}
|
||||||
|
\providecommand{\subsubsection}{}
|
||||||
|
\renewcommand{\subsubsection}{%
|
||||||
|
\@startsection{subsubsection}{3}{\z@}%
|
||||||
|
{-1.5ex \@plus -0.5ex \@minus -0.2ex}%
|
||||||
|
{ 0.5ex \@plus 0.2ex}%
|
||||||
|
{\normalsize\bf\raggedright}%
|
||||||
|
}
|
||||||
|
\providecommand{\paragraph}{}
|
||||||
|
\renewcommand{\paragraph}{%
|
||||||
|
\@startsection{paragraph}{4}{\z@}%
|
||||||
|
{1.5ex \@plus 0.5ex \@minus 0.2ex}%
|
||||||
|
{-1em}%
|
||||||
|
{\normalsize\bf}%
|
||||||
|
}
|
||||||
|
\providecommand{\subparagraph}{}
|
||||||
|
\renewcommand{\subparagraph}{%
|
||||||
|
\@startsection{subparagraph}{5}{\z@}%
|
||||||
|
{1.5ex \@plus 0.5ex \@minus 0.2ex}%
|
||||||
|
{-1em}%
|
||||||
|
{\normalsize\bf}%
|
||||||
|
}
|
||||||
|
\providecommand{\subsubsubsection}{}
|
||||||
|
\renewcommand{\subsubsubsection}{%
|
||||||
|
\vskip5pt{\noindent\normalsize\rm\raggedright}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% float placement
|
||||||
|
\renewcommand{\topfraction }{0.85}
|
||||||
|
\renewcommand{\bottomfraction }{0.4}
|
||||||
|
\renewcommand{\textfraction }{0.1}
|
||||||
|
\renewcommand{\floatpagefraction}{0.7}
|
||||||
|
|
||||||
|
\newlength{\@neuripsabovecaptionskip}\setlength{\@neuripsabovecaptionskip}{7\p@}
|
||||||
|
\newlength{\@neuripsbelowcaptionskip}\setlength{\@neuripsbelowcaptionskip}{\z@}
|
||||||
|
|
||||||
|
\setlength{\abovecaptionskip}{\@neuripsabovecaptionskip}
|
||||||
|
\setlength{\belowcaptionskip}{\@neuripsbelowcaptionskip}
|
||||||
|
|
||||||
|
% swap above/belowcaptionskip lengths for tables
|
||||||
|
\renewenvironment{table}
|
||||||
|
{\setlength{\abovecaptionskip}{\@neuripsbelowcaptionskip}%
|
||||||
|
\setlength{\belowcaptionskip}{\@neuripsabovecaptionskip}%
|
||||||
|
\@float{table}}
|
||||||
|
{\end@float}
|
||||||
|
|
||||||
|
% footnote formatting
|
||||||
|
\setlength{\footnotesep }{6.65\p@}
|
||||||
|
\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}
|
||||||
|
\renewcommand{\footnoterule}{\kern-3\p@ \hrule width 12pc \kern 2.6\p@}
|
||||||
|
\setcounter{footnote}{0}
|
||||||
|
|
||||||
|
% paragraph formatting
|
||||||
|
\setlength{\parindent}{\z@}
|
||||||
|
\setlength{\parskip }{5.5\p@}
|
||||||
|
|
||||||
|
% list formatting
|
||||||
|
\setlength{\topsep }{4\p@ \@plus 1\p@ \@minus 2\p@}
|
||||||
|
\setlength{\partopsep }{1\p@ \@plus 0.5\p@ \@minus 0.5\p@}
|
||||||
|
\setlength{\itemsep }{2\p@ \@plus 1\p@ \@minus 0.5\p@}
|
||||||
|
\setlength{\parsep }{2\p@ \@plus 1\p@ \@minus 0.5\p@}
|
||||||
|
\setlength{\leftmargin }{3pc}
|
||||||
|
\setlength{\leftmargini }{\leftmargin}
|
||||||
|
\setlength{\leftmarginii }{2em}
|
||||||
|
\setlength{\leftmarginiii}{1.5em}
|
||||||
|
\setlength{\leftmarginiv }{1.0em}
|
||||||
|
\setlength{\leftmarginv }{0.5em}
|
||||||
|
\def\@listi {\leftmargin\leftmargini}
|
||||||
|
\def\@listii {\leftmargin\leftmarginii
|
||||||
|
\labelwidth\leftmarginii
|
||||||
|
\advance\labelwidth-\labelsep
|
||||||
|
\topsep 2\p@ \@plus 1\p@ \@minus 0.5\p@
|
||||||
|
\parsep 1\p@ \@plus 0.5\p@ \@minus 0.5\p@
|
||||||
|
\itemsep \parsep}
|
||||||
|
\def\@listiii{\leftmargin\leftmarginiii
|
||||||
|
\labelwidth\leftmarginiii
|
||||||
|
\advance\labelwidth-\labelsep
|
||||||
|
\topsep 1\p@ \@plus 0.5\p@ \@minus 0.5\p@
|
||||||
|
\parsep \z@
|
||||||
|
\partopsep 0.5\p@ \@plus 0\p@ \@minus 0.5\p@
|
||||||
|
\itemsep \topsep}
|
||||||
|
\def\@listiv {\leftmargin\leftmarginiv
|
||||||
|
\labelwidth\leftmarginiv
|
||||||
|
\advance\labelwidth-\labelsep}
|
||||||
|
\def\@listv {\leftmargin\leftmarginv
|
||||||
|
\labelwidth\leftmarginv
|
||||||
|
\advance\labelwidth-\labelsep}
|
||||||
|
\def\@listvi {\leftmargin\leftmarginvi
|
||||||
|
\labelwidth\leftmarginvi
|
||||||
|
\advance\labelwidth-\labelsep}
|
||||||
|
|
||||||
|
% create title
|
||||||
|
\providecommand{\maketitle}{}
|
||||||
|
\renewcommand{\maketitle}{%
|
||||||
|
\par
|
||||||
|
\begingroup
|
||||||
|
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
|
||||||
|
% for perfect author name centering
|
||||||
|
\renewcommand{\@makefnmark}{\hbox to \z@{$^{\@thefnmark}$\hss}}
|
||||||
|
% The footnote-mark was overlapping the footnote-text,
|
||||||
|
% added the following to fix this problem (MK)
|
||||||
|
\long\def\@makefntext##1{%
|
||||||
|
\parindent 1em\noindent
|
||||||
|
\hbox to 1.8em{\hss $\m@th ^{\@thefnmark}$}##1
|
||||||
|
}
|
||||||
|
\thispagestyle{empty}
|
||||||
|
\@maketitle
|
||||||
|
\@thanks
|
||||||
|
\@notice
|
||||||
|
\endgroup
|
||||||
|
\let\maketitle\relax
|
||||||
|
\let\thanks\relax
|
||||||
|
}
|
||||||
|
|
||||||
|
% rules for title box at top of first page
|
||||||
|
\newcommand{\@toptitlebar}{
|
||||||
|
\hrule height 4\p@
|
||||||
|
\vskip 0.25in
|
||||||
|
\vskip -\parskip%
|
||||||
|
}
|
||||||
|
\newcommand{\@bottomtitlebar}{
|
||||||
|
\vskip 0.29in
|
||||||
|
\vskip -\parskip
|
||||||
|
\hrule height 1\p@
|
||||||
|
\vskip 0.09in%
|
||||||
|
}
|
||||||
|
|
||||||
|
% create title (includes both anonymized and non-anonymized versions)
|
||||||
|
\providecommand{\@maketitle}{}
|
||||||
|
\renewcommand{\@maketitle}{%
|
||||||
|
\vbox{%
|
||||||
|
\hsize\textwidth
|
||||||
|
\linewidth\hsize
|
||||||
|
\vskip 0.1in
|
||||||
|
\@toptitlebar
|
||||||
|
\centering
|
||||||
|
{\LARGE\bf \@title\par}
|
||||||
|
\@bottomtitlebar
|
||||||
|
\if@submission
|
||||||
|
\begin{tabular}[t]{c}\bf\rule{\z@}{24\p@}
|
||||||
|
Anonymous Author(s) \\
|
||||||
|
Affiliation \\
|
||||||
|
Address \\
|
||||||
|
\texttt{email} \\
|
||||||
|
\end{tabular}%
|
||||||
|
\else
|
||||||
|
\def\And{%
|
||||||
|
\end{tabular}\hfil\linebreak[0]\hfil%
|
||||||
|
\begin{tabular}[t]{c}\bf\rule{\z@}{24\p@}\ignorespaces%
|
||||||
|
}
|
||||||
|
\def\AND{%
|
||||||
|
\end{tabular}\hfil\linebreak[4]\hfil%
|
||||||
|
\begin{tabular}[t]{c}\bf\rule{\z@}{24\p@}\ignorespaces%
|
||||||
|
}
|
||||||
|
\begin{tabular}[t]{c}\bf\rule{\z@}{24\p@}\@author\end{tabular}%
|
||||||
|
\fi
|
||||||
|
\vskip 0.3in \@minus 0.1in
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
% add conference notice to bottom of first page
|
||||||
|
\newcommand{\ftype@noticebox}{8}
|
||||||
|
\newcommand{\@notice}{%
|
||||||
|
% give a bit of extra room back to authors on first page
|
||||||
|
\enlargethispage{2\baselineskip}%
|
||||||
|
\@float{noticebox}[b]%
|
||||||
|
\footnotesize\@noticestring%
|
||||||
|
\end@float%
|
||||||
|
}
|
||||||
|
|
||||||
|
% abstract styling
|
||||||
|
\renewenvironment{abstract}%
|
||||||
|
{%
|
||||||
|
\vskip 0.075in%
|
||||||
|
\centerline%
|
||||||
|
{\large\bf Abstract}%
|
||||||
|
\vspace{0.5ex}%
|
||||||
|
\begin{quote}%
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\par%
|
||||||
|
\end{quote}%
|
||||||
|
\vskip 1ex%
|
||||||
|
}
|
||||||
|
|
||||||
|
% handle tweaks for camera-ready copy vs. submission copy
|
||||||
|
\if@preprint
|
||||||
|
\newcommand{\@noticestring}{%
|
||||||
|
Preprint. Under review.%
|
||||||
|
}
|
||||||
|
\else
|
||||||
|
\if@neuripsfinal
|
||||||
|
\newcommand{\@noticestring}{%
|
||||||
|
(\@neuripsyear) \@title
|
||||||
|
}
|
||||||
|
\else
|
||||||
|
\newcommand{\@noticestring}{%
|
||||||
|
(\@neuripsyear) \@title %
|
||||||
|
}
|
||||||
|
|
||||||
|
% hide the acknowledgements
|
||||||
|
\NewEnviron{hide}{}
|
||||||
|
\let\ack\hide
|
||||||
|
\let\endack\endhide
|
||||||
|
|
||||||
|
% line numbers for submission
|
||||||
|
\RequirePackage{lineno}
|
||||||
|
\linenumbers
|
||||||
|
|
||||||
|
% fix incompatibilities between lineno and amsmath, if required, by
|
||||||
|
% transparently wrapping linenomath environments around amsmath
|
||||||
|
% environments
|
||||||
|
\AtBeginDocument{%
|
||||||
|
\@ifpackageloaded{amsmath}{%
|
||||||
|
\newcommand*\patchAmsMathEnvironmentForLineno[1]{%
|
||||||
|
\expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname
|
||||||
|
\expandafter\let\csname oldend#1\expandafter\endcsname\csname end#1\endcsname
|
||||||
|
\renewenvironment{#1}%
|
||||||
|
{\linenomath\csname old#1\endcsname}%
|
||||||
|
{\csname oldend#1\endcsname\endlinenomath}%
|
||||||
|
}%
|
||||||
|
\newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{%
|
||||||
|
\patchAmsMathEnvironmentForLineno{#1}%
|
||||||
|
\patchAmsMathEnvironmentForLineno{#1*}%
|
||||||
|
}%
|
||||||
|
\patchBothAmsMathEnvironmentsForLineno{equation}%
|
||||||
|
\patchBothAmsMathEnvironmentsForLineno{align}%
|
||||||
|
\patchBothAmsMathEnvironmentsForLineno{flalign}%
|
||||||
|
\patchBothAmsMathEnvironmentsForLineno{alignat}%
|
||||||
|
\patchBothAmsMathEnvironmentsForLineno{gather}%
|
||||||
|
\patchBothAmsMathEnvironmentsForLineno{multline}%
|
||||||
|
}
|
||||||
|
{}
|
||||||
|
}
|
||||||
|
\fi
|
||||||
|
\fi
|
||||||
|
|
||||||
|
|
||||||
|
\endinput
|
||||||
187
.obsidian/plugins/obsidian-enhancing-export/textemplate/neurips.tex
vendored
Normal file
187
.obsidian/plugins/obsidian-enhancing-export/textemplate/neurips.tex
vendored
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
% This template was tested with Pandoc 3.4 and pandoc-crossref v0.3.18.0. It should be backwards compatible with older version of pandoc..
|
||||||
|
\documentclass{article}
|
||||||
|
|
||||||
|
|
||||||
|
% if you need to pass options to natbib, use, e.g.:
|
||||||
|
% \PassOptionsToPackage{numbers, compress}{natbib}
|
||||||
|
% before loading neurips_2023
|
||||||
|
|
||||||
|
|
||||||
|
% ready for submission
|
||||||
|
\usepackage[final,nonatbib]{neurips}
|
||||||
|
|
||||||
|
|
||||||
|
% to compile a preprint version, e.g., for submission to arXiv, add add the
|
||||||
|
% [preprint] option:
|
||||||
|
% \usepackage[preprint]{neurips_2023}
|
||||||
|
|
||||||
|
|
||||||
|
% to compile a camera-ready version, add the [final] option, e.g.:
|
||||||
|
% \usepackage[final]{neurips_2023}
|
||||||
|
|
||||||
|
|
||||||
|
% to avoid loading the natbib package, add option nonatbib:
|
||||||
|
% \usepackage[nonatbib]{neurips_2023}
|
||||||
|
|
||||||
|
|
||||||
|
\usepackage[utf8]{inputenc} % allow utf-8 input
|
||||||
|
\usepackage[T1]{fontenc} % use 8-bit T1 fonts
|
||||||
|
\usepackage{hyperref} % hyperlinks
|
||||||
|
\usepackage{url} % simple URL typesetting
|
||||||
|
\usepackage{booktabs} % professional-quality tables
|
||||||
|
\usepackage{amsfonts} % blackboard math symbols
|
||||||
|
\usepackage{nicefrac} % compact symbols for 1/2, etc.
|
||||||
|
\usepackage{microtype} % microtypography
|
||||||
|
\usepackage{xcolor} % colors
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{longtable} % Add support for Pandoc's longtable if needed
|
||||||
|
\usepackage{array} % For table alignment improvements
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{textcomp}
|
||||||
|
\setlength{\LTcapwidth}{\textwidth} % To make captions fit within page width
|
||||||
|
|
||||||
|
\makeatletter
|
||||||
|
\newsavebox\pandoc@box
|
||||||
|
\newcommand*\pandocbounded[1]{% scales image to fit in text height/width
|
||||||
|
\sbox\pandoc@box{#1}%
|
||||||
|
\Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}%
|
||||||
|
\Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}%
|
||||||
|
\ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both
|
||||||
|
\ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}%
|
||||||
|
\else\usebox{\pandoc@box}%
|
||||||
|
\fi%
|
||||||
|
}
|
||||||
|
\makeatother
|
||||||
|
\makeatletter
|
||||||
|
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
|
||||||
|
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
|
||||||
|
\makeatother
|
||||||
|
% Scale images if necessary, so that they will not overflow the page
|
||||||
|
% margins by default, and it is still possible to overwrite the defaults
|
||||||
|
% using explicit options in \includegraphics[width, height, ...]{}
|
||||||
|
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
|
||||||
|
% Set default figure placement to htbp
|
||||||
|
\makeatletter
|
||||||
|
\def\fps@figure{htbp}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
$if(csl-refs)$
|
||||||
|
% definitions for citeproc citations
|
||||||
|
\NewDocumentCommand\citeproctext{}{}
|
||||||
|
\NewDocumentCommand\citeproc{mm}{%
|
||||||
|
\begingroup\def\citeproctext{#2}\cite{#1}\endgroup}
|
||||||
|
\makeatletter
|
||||||
|
% allow citations to break across lines
|
||||||
|
\let\@cite@ofmt\@firstofone
|
||||||
|
% avoid brackets around text for \cite:
|
||||||
|
\def\@biblabel#1{}
|
||||||
|
\def\@cite#1#2{{#1\if@tempswa , #2\fi}}
|
||||||
|
\makeatother
|
||||||
|
\newlength{\cslhangindent}
|
||||||
|
\setlength{\cslhangindent}{1.5em}
|
||||||
|
\newlength{\csllabelwidth}
|
||||||
|
\setlength{\csllabelwidth}{3em}
|
||||||
|
\newenvironment{CSLReferences}[2] % #1 hanging-indent, #2 entry-spacing
|
||||||
|
{\begin{list}{}{%
|
||||||
|
\setlength{\itemindent}{0pt}
|
||||||
|
\setlength{\leftmargin}{0pt}
|
||||||
|
\setlength{\parsep}{0pt}
|
||||||
|
% turn on hanging indent if param 1 is 1
|
||||||
|
\ifodd #1
|
||||||
|
\setlength{\leftmargin}{\cslhangindent}
|
||||||
|
\setlength{\itemindent}{-1\cslhangindent}
|
||||||
|
\fi
|
||||||
|
% set entry spacing
|
||||||
|
\setlength{\itemsep}{#2\baselineskip}}}
|
||||||
|
{\end{list}}
|
||||||
|
\usepackage{calc}
|
||||||
|
\newcommand{\CSLBlock}[1]{\hfill\break\parbox[t]{\linewidth}{\strut\ignorespaces#1\strut}}
|
||||||
|
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{\strut#1\strut}}
|
||||||
|
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{\strut#1\strut}}
|
||||||
|
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
|
||||||
|
$endif$
|
||||||
|
\providecommand{\tightlist}{%
|
||||||
|
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
|
||||||
|
\title{$title$}
|
||||||
|
|
||||||
|
|
||||||
|
% Iterate through the authors except last to add \And.
|
||||||
|
|
||||||
|
\author{%
|
||||||
|
$for(authors/allbutlast)$
|
||||||
|
$authors.name$\\$authors.affiliation$\\$authors.institution$\\$authors.email$\\$authors.address$ \And
|
||||||
|
$endfor$
|
||||||
|
$for(authors/last)$
|
||||||
|
$authors.name$\\$authors.affiliation$\\$authors.institution$\\$authors.email$\\$authors.address$
|
||||||
|
$endfor$
|
||||||
|
}
|
||||||
|
|
||||||
|
% \author{%
|
||||||
|
% David S.~Hippocampus \\
|
||||||
|
% Department of Computer Science\\
|
||||||
|
% Cranberry-Lemon University\\
|
||||||
|
% Pittsburgh, PA 15213 \\
|
||||||
|
% \texttt{hippo@cs.cranberry-lemon.edu} \\
|
||||||
|
% % examples of more authors
|
||||||
|
% % \And
|
||||||
|
% % Coauthor \\
|
||||||
|
% % Affiliation \\
|
||||||
|
% % Address \\
|
||||||
|
% % \texttt{email} \\
|
||||||
|
% % \AND
|
||||||
|
% % Coauthor \\
|
||||||
|
% % Affiliation \\
|
||||||
|
% % Address \\
|
||||||
|
% % \texttt{email} \\
|
||||||
|
% % \And
|
||||||
|
% % Coauthor \\
|
||||||
|
% % Affiliation \\
|
||||||
|
% % Address \\
|
||||||
|
% % \texttt{email} \\
|
||||||
|
% % \And
|
||||||
|
% % Coauthor \\
|
||||||
|
% % Affiliation \\
|
||||||
|
% % Address \\
|
||||||
|
% % \texttt{email} \\
|
||||||
|
% }
|
||||||
|
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
|
||||||
|
\begin{abstract}
|
||||||
|
$if(abstract)$
|
||||||
|
$abstract$
|
||||||
|
$else$
|
||||||
|
Add your abstract at the beginning of your markdown file like this
|
||||||
|
\begin{verbatim}
|
||||||
|
---
|
||||||
|
title: "Your Title"
|
||||||
|
abstract: "your abstract here"
|
||||||
|
authors:
|
||||||
|
- name: Leonardo V. Castorina
|
||||||
|
affiliation: School of Informatics
|
||||||
|
institution: University of Edinburgh
|
||||||
|
email: justanemail@domain.ext
|
||||||
|
address: Edinburgh
|
||||||
|
- name: Coauthor
|
||||||
|
affiliation: Affiliation
|
||||||
|
institution: Institution
|
||||||
|
email: coauthor@example.com
|
||||||
|
address: Address
|
||||||
|
---
|
||||||
|
\end{verbatim}
|
||||||
|
This is called YAML frontmatter. If you set your abstract correctly you should not see this message.
|
||||||
|
$endif$
|
||||||
|
\end{abstract}
|
||||||
|
|
||||||
|
|
||||||
|
$body$
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
|
||||||
|
\end{document}
|
||||||
2
.obsidian/plugins/obsidian-pandoc/data.json
vendored
2
.obsidian/plugins/obsidian-pandoc/data.json
vendored
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"showCLICommands": false,
|
"showCLICommands": true,
|
||||||
"addExtensionsToInternalLinks": "html",
|
"addExtensionsToInternalLinks": "html",
|
||||||
"injectAppCSS": "current",
|
"injectAppCSS": "current",
|
||||||
"injectThemeCSS": false,
|
"injectThemeCSS": false,
|
||||||
|
|||||||
11
test conversion en word.md
Normal file
11
test conversion en word.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
up:
|
||||||
|
tags:
|
||||||
|
aliases:
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Un super titre
|
||||||
|
**Gras** *italique*
|
||||||
|
|
||||||
|
![[attachments/Capture d’écran 2024-03-28 à 12.17.45.png]]
|
||||||
Reference in New Issue
Block a user