<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ການຂຽນສະຄຣິບດ້ວຍ Lua on darktable user manual</title>
    <link>https://docs.darktable.org/usermanual/development/lo/lua/</link>
    <description>Recent content in ການຂຽນສະຄຣິບດ້ວຍ Lua on darktable user manual</description>
    <generator>Hugo</generator>
    <language>lo</language>
    <atom:link href="https://docs.darktable.org/usermanual/development/lo/lua/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ພາບລວມ</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/overview/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/overview/</guid>
      <description>&lt;p&gt;ສະຄຣິບ Lua ສາມາດໃຊ້ເພື່ອກຳນົດການກະທຳໃຫ້ darktable ດຳເນີນການເມື່ອມີເຫດການໃດໜຶ່ງເກີດຂຶ້ນ. ຕົວຢ່າງໜຶ່ງອາດຈະແມ່ນການເອີ້ນໃຊ້ແອັບພລິເຄຊັນພາຍນອກໃນລະຫວ່າງການສົ່ງອອກໄຟລ໌ ເພື່ອນຳໃຊ້ຂັ້ນຕອນການປະມວນຜົນເພີ່ມເຕີມພາຍນອກ darktable.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.lua.org/&#34; target=&#34;_blank&#34;&gt;Lua&lt;/a&gt; ແມ່ນໂຄງການອິດສະຫຼະທີ່ສ້າງຂຶ້ນໃນປີ 1993, ໃຫ້ບໍລິການພາສາສະຄຣິບທີ່ມີປະສິດທິພາບ, ໄວ, ເບົາບາງ ແລະ ສາມາດຝັງເຂົ້າໃນໂປຣແກຣມອື່ນໄດ້. Lua ຖືກນຳໃຊ້ຢ່າງກວ້າງຂວາງໂດຍແອັບພລິເຄຊັນໂອເພນຊອດຫຼາຍອັນ, ໃນໂປຣແກຣມທາງການຄ້າ ແລະ ສຳລັບການຂຽນເກມ. darktable ໃຊ້ Lua ເວີຊັນ 5.4. ການອະທິບາຍຫຼັກການ ແລະ ໄວຍາກອນຂອງ Lua ແມ່ນຢູ່ນອກຂອບເຂດຂອງຄູ່ມືນີ້. ສຳລັບການແນະນຳຢ່າງລະອຽດ ໃຫ້ເບິ່ງທີ່ &lt;a href=&#34;http://www.lua.org/manual/5.4/manual.html&#34; target=&#34;_blank&#34;&gt;ຄູ່ມືອ້າງອີງ Lua&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;darktable ມາພ້ອມກັບ &lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/lua/darktables-scripts/&#34;&gt;ສະຄຣິບຈຳນວນໜຶ່ງ&lt;/a&gt;. ຕົວຈັດການຫຼັກສຳລັບສະຄຣິບແມ່ນຕົວຈັດການສະຄຣິບ (ເບິ່ງ &lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/lua/basic-principles/&#34;&gt;ຫຼັກການພື້ນຖານ&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;ສ່ວນຕໍ່ໄປນີ້ຈະໃຫ້ການແນະນຳສັ້ນໆກ່ຽວກັບວິທີການໃຊ້ສະຄຣິບ Lua ພາຍໃນ darktable. ເອກະສານປະກອບທີ່ສົມບູນກ່ຽວກັບການຂຽນສະຄຣິບ Lua ໃນ darktable ສາມາດເບິ່ງໄດ້ທີ່ &lt;a href=&#34;https://docs.darktable.org/lua/stable/&#34; target=&#34;_blank&#34;&gt;darktable lua documentation&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ສະຄຣິບຂອງ darktable</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/darktables-scripts/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/darktables-scripts/</guid>
      <description>&lt;h2 id=&#34;ຕງແຕເວຊນ-56-ເປນຕນໄປ&#34;&gt;&lt;a href=&#34;#%e0%ba%95%e0%ba%87%e0%bb%81%e0%ba%95%e0%bb%80%e0%ba%a7%e0%ba%8a%e0%ba%99-56-%e0%bb%80%e0%ba%9b%e0%ba%99%e0%ba%95%e0%ba%99%e0%bb%84%e0%ba%9b&#34;&gt;🔗&lt;/a&gt;ຕັ້ງແຕ່ເວີຊັນ 5.6 ເປັນຕົ້ນໄປ&lt;/h2&gt;&#xA;&lt;p&gt;ຊຸດສະຄຣິບຕ່າງໆແມ່ນລວມມາພ້ອມກັບ darktable ແລ້ວ. ພວກມັນສາມາດປິດໃຊ້ງານໄດ້ໃນ &lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/preferences-settings/lua-options/&#34;&gt;ການຕັ້ງຄ່າ &amp;gt; lua&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;ເລີ່ມຕັ້ງແຕ່ darktable 5.6, lua-scripts ຈະຖືກລວມເຂົ້າໃນເວີຊັນທີ່ປ່ອຍອອກມາ, ດັ່ງນັ້ນຈຶ່ງບໍ່ຈຳເປັນຕ້ອງຕິດຕັ້ງແຍກຕ່າງຫາກອີກຕໍ່ໄປ.&lt;/p&gt;&#xA;&lt;p&gt;ເບິ່ງ &lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/lua/basic-principles/&#34;&gt;ຫຼັກການພື້ນຖານ&lt;/a&gt; ສຳລັບຄຳອະທິບາຍກ່ຽວກັບວິທີທີ່ darktable ໂຫຼດສະຄຣິບ Lua.&lt;/p&gt;&#xA;&lt;p&gt;ເອກະສານປະກອບສຳລັບສະຄຣິບຂອງ darktable ມີໃຫ້ເບິ່ງໃນ &lt;a href=&#34;https://docs.darktable.org/lua/stable/lua.scripts.manual/scripts/&#34; target=&#34;_blank&#34;&gt;lua docs&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;ກອນເວຊນ-56&#34;&gt;&lt;a href=&#34;#%e0%ba%81%e0%ba%ad%e0%ba%99%e0%bb%80%e0%ba%a7%e0%ba%8a%e0%ba%99-56&#34;&gt;🔗&lt;/a&gt;ກ່ອນເວີຊັນ 5.6&lt;/h2&gt;&#xA;&lt;p&gt;ກ່ອນເວີຊັນ 5.6, ສະຄຣິບບໍ່ໄດ້ຖືກລວມມານຳ ແລະ ຕ້ອງຕິດຕັ້ງໂດຍໃຊ້ຄຳແນະນຳຕໍ່ໄປນີ້.&lt;/p&gt;&#xA;&lt;h3 id=&#34;ດາວໂຫດ-ແລະ-ຕດຕງ&#34;&gt;&lt;a href=&#34;#%e0%ba%94%e0%ba%b2%e0%ba%a7%e0%bb%82%e0%ba%ab%e0%ba%94-%e0%bb%81%e0%ba%a5%e0%ba%b0-%e0%ba%95%e0%ba%94%e0%ba%95%e0%ba%87&#34;&gt;🔗&lt;/a&gt;ດາວໂຫຼດ ແລະ ຕິດຕັ້ງ&lt;/h3&gt;&#xA;&lt;p&gt;ຊຸດສະຄຣິບຕ່າງໆມີໃຫ້ໃນ &lt;a href=&#34;https://github.com/darktable-org/lua-scripts&#34; target=&#34;_blank&#34;&gt;lua-scripts repository&lt;/a&gt;. ອັນນີ້ຍັງລວມເຖິງຕົວຈັດການສະຄຣິບ ເຊິ່ງຊ່ວຍໃຫ້ການເປີດ ຫຼື ປິດສະຄຣິບແຕ່ລະອັນຜ່ານ GUI ເຮັດໄດ້ງ່າຍຂຶ້ນ. ເອກະສານປະກອບສຳລັບສະຄຣິບ lua ເຫຼົ່ານີ້ແມ່ນລວມຢູ່ໃນ &lt;a href=&#34;https://docs.darktable.org/lua/stable/lua.scripts.manual/scripts/&#34; target=&#34;_blank&#34;&gt;lua docs&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;ເພື່ອໃຊ້ສະຄຣິບທີ່ມີຢູ່ເຫຼົ່ານີ້ໃນເວີຊັນກ່ອນ 5.6, ພວກມັນຕ້ອງຖືກຕິດຕັ້ງໃນ darktable. ໃນກໍລະນີສ່ວນໃຫຍ່ ສາມາດເຮັດໄດ້ຜ່ານ GUI ຂອງ darktable, ແຕ່ກໍຂຶ້ນກັບລະບົບປະຕິບັດການ ແລະ ວິທີການຕິດຕັ້ງທີ່ທ່ານເລືອກ.&lt;/p&gt;&#xA;&lt;p&gt;ບໍ່ວ່າຈະເປັນກໍລະນີໃດ, ຄວນເປີດ darktable ຢ່າງໜ້ອຍໜຶ່ງຄັ້ງເພື່ອສ້າງໂຟນເດີຕ່າງໆຂອງມັນ. ໂຟນເດີກຳນົດຄ່າສຳລັບການຕິດຕັ້ງສ່ວນໃຫຍ່ແມ່ນມີລາຍຊື່ຢູ່ໃນໜ້າ &lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/preferences-settings/config-directory/&#34;&gt;ໂຟນເດີກຳນົດຄ່າ&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;ເອກະສານປະກອບສຳລັບສະຄຣິບຂອງ darktable ມີໃຫ້ເບິ່ງໃນ &lt;a href=&#34;https://docs.darktable.org/lua/stable/lua.scripts.manual/scripts/&#34; target=&#34;_blank&#34;&gt;lua docs&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Linux Package, AppImage ແລະ Flatpak&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>ຫຼັກການພື້ນຖານ</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/basic-principles/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/basic-principles/</guid>
      <description>&lt;p&gt;ສະຄຣິບສາມາດລົງທະບຽນ callbacks ເພື່ອດຳເນີນການເມື່ອມີເຫດການຕ່າງໆຂອງ darktable ເກີດຂຶ້ນ. ກົນໄກ callback ນີ້ແມ່ນວິທີຫຼັກໃນການກະຕຸ້ນການເຮັດວຽກຂອງ lua.&lt;/p&gt;&#xA;&lt;p&gt;ຕົວຈັດການຫຼັກສຳລັບສະຄຣິບ lua ແມ່ນ &lt;em&gt;ຕົວຈັດການສະຄຣິບ (script manager)&lt;/em&gt;, ເຊິ່ງຈະສ້າງໂມດູນອັດຖະປະໂຫຍດ &lt;strong&gt;scripts&lt;/strong&gt; ໃນແຜງແສງ ແລະ ໂຫຼດສະຄຣິບທີ່ມາພ້ອມກັບ darktable.&lt;/p&gt;&#xA;&lt;p&gt;ສະຄຣິບ Lua ສາມາດປິດໃຊ້ງານໄດ້ໃນ &lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/preferences-settings/lua-options/&#34;&gt;ການຕັ້ງຄ່າ/ຕົວເລືອກ lua&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;ວທທ-darktable-ໂຫດສະຄຣບ-ແລະ-ຕວຈດການສະຄຣບ&#34;&gt;&lt;a href=&#34;#%e0%ba%a7%e0%ba%97%e0%ba%97-darktable-%e0%bb%82%e0%ba%ab%e0%ba%94%e0%ba%aa%e0%ba%b0%e0%ba%84%e0%ba%a3%e0%ba%9a-%e0%bb%81%e0%ba%a5%e0%ba%b0-%e0%ba%95%e0%ba%a7%e0%ba%88%e0%ba%94%e0%ba%81%e0%ba%b2%e0%ba%99%e0%ba%aa%e0%ba%b0%e0%ba%84%e0%ba%a3%e0%ba%9a&#34;&gt;🔗&lt;/a&gt;ວິທີທີ່ darktable ໂຫຼດສະຄຣິບ (ແລະ ຕົວຈັດການສະຄຣິບ)&lt;/h3&gt;&#xA;&lt;p&gt;darktable ຈັດການສອງສະຖານທີ່ແຕກຕ່າງກັນ: ໄຟລ໌ທີ່ຖືກ &lt;em&gt;ປະມວນຜົນ&lt;/em&gt; ເປັນລະຫັດ Lua, ແລະ ໂຟນເດີທີ່ຖືກ &lt;em&gt;ສະແກນ&lt;/em&gt; ເພື່ອຫາສະຄຣິບ:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ປະມວນຜົນຕອນເລີ່ມຕົ້ນ:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;$DARKTABLE/share/darktable/luarc&lt;/code&gt;: ຖືກປະມວນຜົນໂດຍ darktable ເອງ. ນີ້ແມ່ນຈຸດເລີ່ມຕົ້ນທີ່ເປີດຕົວຈັດການສະຄຣິບ. ມັນໃຊ້ສຳລັບຈຸດປະສົງພາຍໃນເທົ່ານັ້ນ ແລະ ບໍ່ຄວນແກ້ໄຂ. $DARKTABLE ແມ່ນໂຟນເດີທີ່ຕິດຕັ້ງໂປຣແກຣມ.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;[ໂຟນເດີກຳນົດຄ່າ]/luarc&lt;/code&gt;: ຖືກປະມວນຜົນໂດຍຕົວຈັດການສະຄຣິບ, ຖ້າມີ. ນີ້ແມ່ນວິທີໜຶ່ງໃນການໃຊ້ສະຄຣິບຂອງທ່ານເອງ (ເບິ່ງຂ້າງລຸ່ມ).&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ສະແກນຫາສະຄຣິບ &lt;code&gt;.lua&lt;/code&gt; (ເຊິ່ງຈະປາກົດໃນໂມດູນສະຄຣິບ):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;$DARKTABLE/share/darktable/lua-scripts/&lt;/code&gt;: ສະຄຣິບທີ່ມາພ້ອມກັບ darktable.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;[ໂຟນເດີກຳນົດຄ່າ]/lua/[folder]&lt;/code&gt;: ສະຄຣິບຂອງທ່ານເອງ (ເບິ່ງຂ້າງລຸ່ມ).&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/preferences-settings/config-directory/&#34;&gt;ໂຟນເດີກຳນົດຄ່າ&lt;/a&gt; ຈະແຕກຕ່າງກັນໄປຕາມລະບົບປະຕິບັດການຂອງທ່ານ.&lt;/p&gt;&#xA;&lt;p&gt;ດັ່ງນັ້ນ ທ່ານສາມາດ &lt;strong&gt;ເພີ່ມສະຄຣິບຂອງທ່ານເອງ&lt;/strong&gt; ໄດ້ດັ່ງນີ້:&lt;/p&gt;</description>
    </item>
    <item>
      <title>ຕົວຢ່າງ lua ແບບງ່າຍໆ</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/a-simple-example/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/a-simple-example/</guid>
      <description>&lt;p&gt;ເລີ່ມຕົ້ນດ້ວຍຕົວຢ່າງງ່າຍໆ ທີ່ຈະພິມລະຫັດບາງຢ່າງລົງໃນຄອນໂຊນ. ສ້າງໄຟລ໌ທີ່ມີຊື່ວ່າ &lt;code&gt;luarc&lt;/code&gt; ໃນ &lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/preferences-settings/config-directory/&#34;&gt;ໂຟນເດີກຳນົດຄ່າ&lt;/a&gt; ຂອງ darktable ແລະ ເພີ່ມແຖວຕໍ່ໄປນີ້ໃສ່:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;print(&amp;#34;ສະບາຍດີຊາວໂລກ !&amp;#34;)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ເປີດ darktable ຈາກຄອນໂຊນ ແລ້ວທ່ານຈະເຫັນປະໂຫຍກ &amp;ldquo;&lt;code&gt;Hello World !&lt;/code&gt;&amp;rdquo; ພິມອອກມາ. ມັນອາດຈະເບິ່ງຄືບໍ່ມີຫຍັງພິເສດ ແຕ່ມັນຄືການເລີ່ມຕົ້ນ.&lt;/p&gt;&#xA;&lt;p&gt;ໃນຂັ້ນຕອນນີ້, ຍັງບໍ່ມີຫຍັງທີ່ເປັນສະເພາະຂອງ darktable ໃນສະຄຣິບ. ພວກເຮົາພຽງແຕ່ໃຊ້ຟັງຊັນ print ມາດຕະຖານຂອງ Lua ເພື່ອພິມຂໍ້ຄວາມ. ນັ້ນກໍດີຢູ່, ແຕ່ພວກເຮົາສາມາດເຮັດໄດ້ດີກວ່ານັ້ນ. ເພື່ອເຂົ້າເຖິງ API ຂອງ darktable, ທຳອິດທ່ານຕ້ອງ &lt;code&gt;require&lt;/code&gt; ມັນ ແລະ ເພີ່ມຄ່າທີ່ສົ່ງກັບມາໄວ້ໃນຕົວປ່ຽນ. ເມື່ອເຮັດແລ້ວ ທ່ານສາມາດເຂົ້າເຖິງ API ຂອງ darktable ຜ່ານຟີວຍ່ອຍຂອງຕົວປ່ຽນນັ້ນ. ທັງໝົດນີ້ມີລາຍລະອຽດຢູ່ໃນຄູ່ມືອ້າງອີງ &lt;a href=&#34;https://docs.darktable.org/usermanual/development/lo/lua/api/&#34;&gt;Lua API&lt;/a&gt; ຂອງ darktable.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;local darktable = require &amp;#34;darktable&amp;#34;&#xA;darktable.print_error(&amp;#34;ສະບາຍດີຊາວໂລກ !&amp;#34;)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ລອງໃຊ້ສະຄຣິບແລ້ວ&amp;hellip; ບໍ່ມີຫຍັງເກີດຂຶ້ນ. ຟັງຊັນ &lt;code&gt;darktable.print_error&lt;/code&gt; ກໍຄືກັບ &lt;code&gt;print&lt;/code&gt; ແຕ່ຈະພິມຂໍ້ຄວາມກໍຕໍ່ເມື່ອທ່ານເປີດໃຊ້ lua traces ໂດຍການສັ່ງ darktable ດ້ວຍ &amp;ldquo;&lt;code&gt;darktable -d lua&lt;/code&gt;&amp;rdquo; ໃນຄຳສັ່ງຄອນໂຊນ. ນີ້ແມ່ນວິທີທີ່ແນະນຳໃນການເຮັດ traces ໃນສະຄຣິບ lua ຂອງ darktable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ການພິມລາຍຊື່ຮູບພາບທີ່ມີປ້າຍສີ</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/printing-labeled-images/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/printing-labeled-images/</guid>
      <description>&lt;p&gt;ຕົວຢ່າງທຳອິດໄດ້ສະແດງໃຫ້ເຫັນພື້ນຖານຂອງ lua ແລະ ຊ່ວຍໃຫ້ພວກເຮົາກວດສອບວ່າທຸກຢ່າງເຮັດວຽກໄດ້ດີ. ບາດນີ້ມາລອງເຮັດສິ່ງທີ່ຊັບຊ້ອນກວ່ານັ້ນໜ້ອຍໜຶ່ງ. ມາລອງພິມລາຍຊື່ຮູບພາບທີ່ມີປ້າຍສີ &amp;ldquo;ແດງ&amp;rdquo; ຕິດຢູ່. ແຕ່ກ່ອນອື່ນໝົດ, ຮູບພາບແມ່ນຫຍັງ?&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;local darktable = require &amp;#34;darktable&amp;#34;&#xA;local debug = require &amp;#34;darktable.debug&amp;#34;&#xA;print(darktable.debug.dump(darktable.database[1]))&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ການໃຊ້ລະຫັດຂ້າງເທິງຈະໃຫ້ຜົນລັດອອກມາຫຼາຍຫຼາຍ. ພວກເຮົາຈະມາເບິ່ງມັນໃນອີກຈັກໜ້ອຍ, ແຕ່ກ່ອນອື່ນມາເບິ່ງທີ່ຕົວລະຫັດກ່ອນ.&lt;/p&gt;&#xA;&lt;p&gt;ພວກເຮົາຮູ້ຈັກ &lt;code&gt;require darktable&lt;/code&gt; ແລ້ວ. ໃນທີ່ນີ້, ພວກເຮົາຕ້ອງ &lt;code&gt;require darktable.debug&lt;/code&gt; ແຍກຕ່າງຫາກ ເຊິ່ງເປັນສ່ວນເສີມຂອງ API ທີ່ໃຫ້ຟັງຊັນຊ່ວຍເຫຼືອໃນການແກ້ໄຂຈຸດບົກພ່ອງ (debug) ຂອງສະຄຣິບ lua.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;darktable.database&lt;/code&gt; ແມ່ນຕາຕະລາງທີ່ API ຈັດຫາໃຫ້ ເຊິ່ງປະກອບດ້ວຍຮູບພາບທັງໝົດໃນຖານຂໍ້ມູນ library. ແຕ່ລະລາຍການໃນຖານຂໍ້ມູນແມ່ນວັດຖຸຮູບພາບ (image object). ວັດຖຸຮູບພາບແມ່ນວັດຖຸທີ່ຊັບຊ້ອນ ເຊິ່ງຊ່ວຍໃຫ້ທ່ານຈັດການຮູບພາບຂອງທ່ານໄດ້ໃນຫຼາຍວິທີ (ທັງໝົດມີລາຍລະອຽດໃນສ່ວນ &lt;code&gt;types_dt_lua_image_t&lt;/code&gt; ຂອງຄູ່ມື API). ເພື່ອສະແດງຮູບພາບຂອງພວກເຮົາ, ພວກເຮົາໃຊ້ &lt;code&gt;darktable.debug.dump&lt;/code&gt; ເຊິ່ງເປັນຟັງຊັນທີ່ຈະຮັບຄ່າໃດກໍໄດ້ເປັນພາຣາມິເຕີ ແລະ ສະແດງເນື້ອໃນຂອງມັນອອກມາທັງໝົດ. ເນື່ອງຈາກຮູບພາບເປັນວັດຖຸທີ່ຊັບຊ້ອນ ແລະ ອ້າງອີງເຖິງວັດຖຸອື່ນໆ, ຜົນລັດທີ່ໄດ້ຈຶ່ງມີຂະໜາດໃຫຍ່ຫຼາຍ. ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງຜົນລັດທີ່ຖືກຕັດໃຫ້ສັ້ນລົງ.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;toplevel (ຂໍ້ມູນຜູ້ໃຊ້,dt_lua_image_t) : /images/100.JPG&#xA;   publisher (ຂໍ້ຄວາມ) : &amp;#34;&amp;#34;&#xA;   path (ຂໍ້ຄວາມ) : &amp;#34;/images&amp;#34;&#xA;   move (ຟັງຊັນ)&#xA;   exif_aperture (ຕົວເລກ) : 2.7999999523163&#xA;   rights (ຂໍ້ຄວາມ) : &amp;#34;&amp;#34;&#xA;   make_group_leader (ຟັງຊັນ)&#xA;   exif_crop (ຕົວເລກ) : 0&#xA;   duplicate_index (ຕົວເລກ) : 0&#xA;   is_raw (ບູລີນ) : false&#xA;   exif_iso (ຕົວເລກ) : 200&#xA;   is_ldr (ບູລີນ) : true&#xA;   rating (ຕົວເລກ) : 1&#xA;   description (ຂໍ້ຄວາມ) : &amp;#34;&amp;#34;&#xA;   red (ບູລີນ) : false&#xA;   get_tags (ຟັງຊັນ)&#xA;   duplicate (ຟັງຊັນ)&#xA;   creator (ຂໍ້ຄວາມ) : &amp;#34;&amp;#34;&#xA;   latitude (ຫວ່າງເປົ່າ)&#xA;   blue (ບູລີນ) : false&#xA;   exif_datetime_taken (ຂໍ້ຄວາມ) : &amp;#34;2014:04:27 14:10:27&amp;#34;&#xA;   exif_maker (ຂໍ້ຄວາມ) : &amp;#34;Panasonic&amp;#34;&#xA;   drop_cache (ຟັງຊັນ)&#xA;   title (ຂໍ້ຄວາມ) : &amp;#34;&amp;#34;&#xA;   reset (ຟັງຊັນ)&#xA;   create_style (ຟັງຊັນ)&#xA;   apply_style (ຟັງຊັນ)&#xA;   film (ຂໍ້ມູນຜູ້ໃຊ້,dt_lua_film_t) : /images&#xA;      1 (ຂໍ້ມູນຜູ້ໃຊ້,dt_lua_image_t): .toplevel&#xA;      [......]&#xA;   exif_exposure (ຕົວເລກ) : 0.0062500000931323&#xA;   exif_lens (ຂໍ້ຄວາມ) : &amp;#34;&amp;#34;&#xA;   detach_tag (ຟັງຊັນ): toplevel.film.2.detach_tag&#xA;   exif_focal_length (ຕົວເລກ) : 4.5&#xA;   get_group_members (ຟັງຊັນ): toplevel.film.2.get_group_members&#xA;   id (ຕົວເລກ) : 1&#xA;   group_with (ຟັງຊັນ): toplevel.film.2.group_with&#xA;   delete (ຟັງຊັນ): toplevel.film.2.delete&#xA;   purple (ບູລີນ) : false&#xA;   is_hdr (ບູລີນ) : false&#xA;   exif_model (ຂໍ້ຄວາມ) : &amp;#34;DMC-FZ200&amp;#34;&#xA;   green (ບູລີນ) : false&#xA;   yellow (ບູລີນ) : false&#xA;   longitude (ຫວ່າງເປົ່າ)&#xA;   filename (ຂໍ້ຄວາມ) : &amp;#34;100.JPG&amp;#34;&#xA;   width (ຕົວເລກ) : 945&#xA;   attach_tag (ຟັງຊັນ): toplevel.film.2.attach_tag&#xA;   exif_focus_distance (ຕົວເລກ) : 0&#xA;   height (ຕົວເລກ) : 648&#xA;   local_copy (ບູລີນ) : false&#xA;   copy (ຟັງຊັນ): toplevel.film.2.copy&#xA;   group_leader (ຂໍ້ມູນຜູ້ໃຊ້,dt_lua_image_t): .toplevel&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ຢ່າງທີ່ພວກເຮົາເຫັນ, ຮູບພາບໜຶ່ງມີຟີວຈຳນວນຫຼາຍທີ່ໃຫ້ຂໍ້ມູນທຸກປະເພດກ່ຽວກັບມັນ. ໃນທີ່ນີ້, ພວກເຮົາສົນໃຈປ້າຍສີ &amp;ldquo;ແດງ&amp;rdquo;. ຟີວນີ້ເປັນຄ່າ boolean (ຈິງ/ບໍ່ຈິງ), ແລະ ເອກະສານບອກວ່າພວກເຮົາສາມາດຂຽນຄ່າລົງໄປໄດ້. ຕອນນີ້ພວກເຮົາພຽງແຕ່ຕ້ອງຊອກຫາຮູບທັງໝົດທີ່ມີຟີວນີ້ ແລະ ພິມພວກມັນອອກມາ:&lt;/p&gt;</description>
    </item>
    <item>
      <title>ການເພີ່ມປຸ່ມລັດແບບງ່າຍໆ</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/simple-shortcut/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/simple-shortcut/</guid>
      <description>&lt;p&gt;ຜ່ານມາ, ສະຄຣິບທັງໝົດຂອງພວກເຮົາເຮັດວຽກໃນລະຫວ່າງການເລີ່ມຕົ້ນລະບົບເທົ່ານັ້ນ. ອັນນີ້ມີປະໂຫຍດຈຳກັດ ແລະ ບໍ່ຊ່ວຍໃຫ້ພວກເຮົາຕອບສະໜອງຕໍ່ການກະທຳຕົວຈິງຂອງຜູ້ໃຊ້ໄດ້. ເພື່ອເຮັດສິ່ງທີ່ກ້າວໜ້າກວ່ານັ້ນ ພວກເຮົາຕ້ອງລົງທະບຽນຟັງຊັນທີ່ຈະຖືກເອີ້ນໃຊ້ເມື່ອມີເຫດການໃດໜຶ່ງເກີດຂຶ້ນ. ເຫດການທີ່ພົບເລື້ອຍທີ່ສຸດແມ່ນປຸ່ມລັດແປ້ນພິມ.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;darktable = require &amp;#34;darktable&amp;#34;&#xA;&#xA;local function hello_shortcut(event, shortcut)&#xA;darktable.print(&amp;#34;ສະບາຍດີ, ຂ້ອຍຫາກໍ່ໄດ້ຮັບ &amp;#39;&amp;#34;..event..&#xA;       &amp;#34;&amp;#39; ພ້ອມກັບພາຣາມິເຕີ &amp;#39;&amp;#34;..shortcut..&amp;#34;&amp;#39;&amp;#34;)&#xA;end&#xA;&#xA;darktable.register_event(&amp;#34;hello shortcut&amp;#34;,&#xA;       &amp;#34;shortcut&amp;#34;,hello_shortcut,&#xA;       &amp;#34;ຄຳສັ່ງລັດທີ່ສະແດງພາຣາມິເຕີຂອງມັນ&amp;#34;)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ຕອນນີ້ໃຫ້ເປີດ darktable, ໄປທີ່ &amp;ldquo;ການຕັ້ງຄ່າ &amp;gt; ປຸ່ມລັດ &amp;gt; lua &amp;gt; A shortcut that prints its parameters&amp;rdquo;, ກຳນົດປຸ່ມລັດແລ້ວທົດລອງໃຊ້. ທ່ານຄວນຈະເຫັນຂໍ້ຄວາມປາກົດຂຶ້ນເທິງໜ້າຈໍ.&lt;/p&gt;&#xA;&lt;p&gt;ມາເບິ່ງລະຫັດຢ່າງລະອຽດ. ທຳອິດພວກເຮົາກຳນົດຟັງຊັນທີ່ຮັບພາຣາມິເຕີຂໍ້ຄວາມສອງອັນ. ອັນທຳອິດແມ່ນປະເພດຂອງເຫດການທີ່ຖືກກະຕຸ້ນ (&amp;ldquo;shortcut&amp;rdquo;) ແລະ ອັນທີສອງແມ່ນຊື່ຂອງປຸ່ມລັດ (&amp;ldquo;A shortcut that prints its parameters&amp;rdquo;). ຕົວຟັງຊັນເອງຈະເອີ້ນໃຊ້ &lt;code&gt;darktable.print&lt;/code&gt;, ເຊິ່ງຈະພິມຂໍ້ຄວາມທັບຊ້ອນໃນໜ້າຕ່າງຫຼັກ.&lt;/p&gt;&#xA;&lt;p&gt;ເມື່ອກຳນົດຟັງຊັນນັ້ນແລ້ວ, ພວກເຮົາຈະລົງທະບຽນມັນເປັນ shortcut callback. ເພື່ອເຮັດສິ່ງນັ້ນ ພວກເຮົາຈະເອີ້ນໃຊ້ &lt;code&gt;darktable.register_event&lt;/code&gt; ເຊິ່ງເປັນຟັງຊັນທົ່ວໄປສຳລັບເຫດການທຸກປະເພດ. ພວກເຮົາບອກມັນວ່າກຳລັງລົງທະບຽນເຫດການປະເພດ &amp;ldquo;shortcut&amp;rdquo; ດ້ວຍຊື່ &amp;ldquo;hello shortcut&amp;rdquo;, ຈາກນັ້ນກຳນົດ callback ທີ່ຈະເອີ້ນໃຊ້ ແລະ ສຸດທ້າຍແມ່ນກຳນົດຂໍ້ຄວາມທີ່ຈະໃຊ້ອະທິບາຍປຸ່ມລັດໃນໜ້າຕ່າງການຕັ້ງຄ່າ.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ການສົ່ງອອກຮູບພາບດ້ວຍ lua</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/exporting-images/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/exporting-images/</guid>
      <description>&lt;p&gt;ຜ່ານມາພວກເຮົາໄດ້ຮຽນຮູ້ການໃຊ້ lua ເພື່ອປັບ darktable ໃຫ້ເຂົ້າກັບຂັ້ນຕອນການເຮັດວຽກຂອງພວກເຮົາ. ບາດນີ້ມາເບິ່ງວິທີການໃຊ້ lua ເພື່ອສົ່ງອອກຮູບພາບໄປຍັງບໍລິການອອນລາຍໄດ້ຢ່າງງ່າຍດາຍ. ຫາກທ່ານສາມາດອັບໂຫຼດຮູບພາບໄປຍັງບໍລິການໃດໜຶ່ງຜ່ານຄຳສັ່ງຄອນໂຊນ ທ່ານກໍສາມາດໃຊ້ lua ເພື່ອລວມສິ່ງນີ້ເຂົ້າໃນອິນເຕີເຟດຜູ້ໃຊ້ຂອງ darktable ໄດ້.&lt;/p&gt;&#xA;&lt;p&gt;ໃນຕົວຢ່າງຕໍ່ໄປນີ້ ພວກເຮົາຈະໃຊ້ lua ເພື່ອສົ່ງອອກຜ່ານ &lt;code&gt;scp&lt;/code&gt;. ປະເພດບ່ອນເກັບຂໍ້ມູນໃໝ່ຈະປາກົດໃນ UI ຂອງ darktable ເຊິ່ງຈະສົ່ງອອກຮູບພາບໄປຍັງປາຍທາງທີ່ຢູ່ໄກ ຜ່ານກົນໄກການຄັດລອກໃນ &lt;code&gt;ssh&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;darktable = require &amp;#34;darktable&amp;#34;&#xA;&#xA;darktable.preferences.register(&amp;#34;scp_export&amp;#34;,&amp;#34;export_path&amp;#34;,&#xA;  &amp;#34;string&amp;#34;,&amp;#34;ເສັ້ນທາງ SCP ເປົ້າໝາຍ&amp;#34;,&#xA;  &amp;#34;ເສັ້ນທາງເຕັມທີ່ຈະສຳເນົາໄປ. ສາມາດລວມເອົາຊື່ຜູ້ໃຊ້ ແລະ ຊື່ໂຮສ໌ (hostname)&amp;#34;,&amp;#34;&amp;#34;)&#xA;&#xA;darktable.register_storage(&amp;#34;scp_export&amp;#34;,&amp;#34;ສົ່ງອອກຜ່ານ scp&amp;#34;,&#xA;  function( storage, image, format, filename,&#xA;     number, total, high_quality, extra_data)&#xA;    if not darktable.control.execute(&amp;#34;scp &amp;#34;..filename..&amp;#34; &amp;#34;..&#xA;      darktable.preferences.read(&amp;#34;scp_export&amp;#34;,&#xA;         &amp;#34;export_path&amp;#34;,&amp;#34;string&amp;#34;)) then&#xA;      darktable.print_error(&amp;#34;scp ຫຼົ້ມເຫຼວສຳລັບ &amp;#34;..tostring(image))&#xA;    end&#xA;end)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;darktable.preferences.register&lt;/code&gt; ຈະເພີ່ມການຕັ້ງຄ່າໃໝ່ເຂົ້າໃນເມນູການຕັ້ງຄ່າຂອງ darktable, &lt;code&gt;scp_export&lt;/code&gt; ແລະ &lt;code&gt;export_path&lt;/code&gt; ຊ່ວຍໃຫ້ພວກເຮົາລະບຸການຕັ້ງຄ່າຂອງພວກເຮົາໄດ້ຢ່າງຊັດເຈນ. ຟີວເຫຼົ່ານີ້ຈະຖືກນຳມາໃຊ້ຄືນເມື່ອພວກເຮົາອ່ານຄ່າຂອງການຕັ້ງຄ່ານັ້ນ. ຟີວ &lt;code&gt;string&lt;/code&gt; ບອກ lua engine ວ່າການຕັ້ງຄ່ານີ້ເປັນຂໍ້ຄວາມ. ມັນຍັງສາມາດເປັນຕົວເລກຖ້ວນ, ຊື່ໄຟລ໌ ຫຼື ປະເພດໃດກໍໄດ້ທີ່ລະບຸໄວ້ໃນຄູ່ມື API ທີ່ກ່ຽວກັບ &lt;code&gt;types_lua_pref_type&lt;/code&gt;. ຈາກນັ້ນພວກເຮົາມີປ້າຍຊື່ສຳລັບການຕັ້ງຄ່າໃນເມນູການຕັ້ງຄ່າ, ຄຳແນະນຳ (tooltip) ເມື່ອວາງເມົາສ໌ເທິງຄ່ານັ້ນ ແລະ ຄ່າເລີ່ມຕົ້ນ.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ການສ້າງອົງປະກອບອິນເຕີເຟດຜູ້ໃຊ້</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/building-ui-elements/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/building-ui-elements/</guid>
      <description>&lt;p&gt;ຕົວຢ່າງກ່ອນໜ້ານີ້ຂອງພວກເຮົາຍັງມີຂໍ້ຈຳກັດ. ໂດຍສະເພາະການໃຊ້ການຕັ້ງຄ່າສຳລັບເສັ້ນທາງການສົ່ງອອກນັ້ນບໍ່ສະດວກປານໃດ. ພວກເຮົາສາມາດເຮັດໃຫ້ດີກວ່ານັ້ນໄດ້ໂດຍການເພີ່ມອົງປະກອບເຂົ້າໃນອິນເຕີເຟດຜູ້ໃຊ້ໃນໜ້າຕ່າງການສົ່ງອອກ.&lt;/p&gt;&#xA;&lt;p&gt;ອົງປະກອບ UI ຖືກສ້າງຂຶ້ນຜ່ານຟັງຊັນ &lt;code&gt;darktable.new_widget&lt;/code&gt;. ຟັງຊັນນີ້ຮັບຄ່າປະເພດຂອງ widget ເປັນພາຣາມິເຕີ ແລະ ສົ່ງຄືນວັດຖຸໃໝ່ທີ່ກົງກັບ widget ນັ້ນ. ຈາກນັ້ນທ່ານສາມາດຕັ້ງຄ່າຟີວຕ່າງໆໃນ widget ນັ້ນເພື່ອຕັ້ງຄ່າພາຣາມິເຕີຂອງມັນ. ທ່ານຈະໃຊ້ວັດຖຸນັ້ນເປັນພາຣາມິເຕີໃຫ້ກັບຟັງຊັນຕ່າງໆທີ່ຈະເພີ່ມມັນເຂົ້າໃນ UI ຂອງ darktable. ຕົວຢ່າງງ່າຍໆຕໍ່ໄປນີ້ຈະເພີ່ມ lib ໃນມຸມມອງແຜງແສງພ້ອມກັບປ້າຍຂໍ້ຄວາມງ່າຍໆ:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;darktable = require &amp;#34;darktable&amp;#34;&#xA;&#xA;local my_label = darktable.new_widget(&amp;#34;label&amp;#34;)&#xA;my_label.label = &amp;#34;Hello, world !&amp;#34;&#xA;&#xA;darktable.register_lib(&amp;#34;test&amp;#34;,&amp;#34;test&amp;#34;,false,false,{&#xA;    [darktable.gui.views.lighttable] = {&amp;#34;DT_UI_CONTAINER_PANEL_LEFT_CENTER&amp;#34;,20},&#xA;  },my_label)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ມີເຕັກນິກທາງໄວຍາກອນທີ່ຊ່ວຍໃຫ້ລະຫັດອົງປະກອບ UI ອ່ານ ແລະ ຂຽນໄດ້ງ່າຍຂຶ້ນ. ທ່ານສາມາດເອີ້ນວັດຖຸເຫຼົ່ານີ້ເປັນຟັງຊັນໂດຍໃຊ້ຕາຕະລາງຂອງຄ່າ key ເປັນອາກິວເມນ. ອັນນີ້ຊ່ວຍໃຫ້ຕົວຢ່າງຕໍ່ໄປນີ້ເຮັດວຽກໄດ້. ມັນສ້າງ widget ທີ່ເປັນຕົວບັນຈຸ (container) ພ້ອມກັບ widget ຍ່ອຍສອງອັນ: ປ້າຍຂໍ້ຄວາມ ແລະ ຊ່ອງປ້ອນຂໍ້ຄວາມ.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;local my_widget = darktable.new_widget(&amp;#34;box&amp;#34;){&#xA;  orientation = &amp;#34;horizontal&amp;#34;,&#xA;  darktable.new_widget(&amp;#34;label&amp;#34;){ label = &amp;#34;ທີ່ນີ້ =&amp;gt; &amp;#34; },&#xA;  darktable.new_widget(&amp;#34;entry&amp;#34;){ tooltip = &amp;#34;ກະລຸນາປ້ອນຂໍ້ຄວາມໃສ່ບ່ອນນີ້&amp;#34; }&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ຕອນນີ້ພວກເຮົາຮູ້ແລ້ວ, ມາປັບປຸງສະຄຣິບຂອງພວກເຮົາອີກໜ້ອຍໜຶ່ງ.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ການແບ່ງປັນສະຄຣິບ</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/sharing-scripts/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/sharing-scripts/</guid>
      <description>&lt;p&gt;ຜ່ານມາ, ລະຫັດ lua ທັງໝົດຂອງພວກເຮົາແມ່ນຢູ່ໃນ &lt;em&gt;luarc&lt;/em&gt;. ນັ້ນແມ່ນວິທີທີ່ດີໃນການພັດທະນາສະຄຣິບ ແຕ່ບໍ່ຄ່ອຍສະດວກໃນການແຈກຢາຍ. ພວກເຮົາຕ້ອງເຮັດໃຫ້ມັນເປັນໂມດູນ lua ທີ່ຖືກຕ້ອງ. ເພື່ອເຮັດສິ່ງນັ້ນ, ພວກເຮົາຈະບັນທຶກລະຫັດໄວ້ໃນໄຟລ໌ແຍກຕ່າງຫາກ (ໃນທີ່ນີ້ແມ່ນ &lt;code&gt;scp-storage.lua&lt;/code&gt;):&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;--[[&#xA;SCP STORAGE&#xA;a simple storage to export images via scp&#xA;&#xA;AUTHOR&#xA;Jérémy Rosen (jeremy.rosen@enst-bretagne.fr)&#xA;&#xA;INSTALLATION&#xA;* copy this file in $CONFIGDIR/lua/&#xA;* add the following line in the file $CONFIGDIR/luarc&#xA;  require &amp;#34;scp-storage&amp;#34;&#xA;&#xA;USAGE&#xA;* select &amp;#34;Export via SCP&amp;#34; in the storage selection menu&#xA;* set the target directory &#xA;* export your images&#xA;&#xA;LICENSE&#xA;GPLv2&#xA;&#xA;]]&#xA;&#xA;darktable = require &amp;#34;darktable&amp;#34;&#xA;dtutils = require &amp;#34;lib/dtutils&amp;#34;&#xA;&#xA;dtutils.check_min_api_version(&amp;#34;7.0.0&amp;#34;, ...)&#xA;&#xA;local scp_path = darktable.new_widget(&amp;#34;entry&amp;#34;){&#xA;  tooltip = &amp;#34;Complete path to copy to. Can include user and hostname&amp;#34;,&#xA;  text = &amp;#34;&amp;#34;,&#xA;  reset_callback = function(self) self.text = &amp;#34;&amp;#34; end&#xA;}&#xA;&#xA;darktable.register_storage(&amp;#34;scp_export&amp;#34;,&amp;#34;Export via scp&amp;#34;,&#xA;  function( storage, image, format, filename,&#xA;     number, total, high_quality, extra_data)&#xA;    if not darktable.control.execute(&amp;#34;scp &amp;#34;..filename..&amp;#34; &amp;#34;..&#xA;      scp_path.text&#xA;    ) then&#xA;      darktable.print_error(&amp;#34;scp failed for &amp;#34;..tostring(image))&#xA;    end&#xA;  end,&#xA;  nil, --finalize&#xA;  nil, --supported&#xA;  nil, --initialize&#xA;  darktable.new_widget(&amp;#34;box&amp;#34;) {&#xA;    orientation = &amp;#34;horizontal&amp;#34;,&#xA;    darktable.new_widget(&amp;#34;label&amp;#34;){ label = &amp;#34;target SCP PATH &amp;#34; },&#xA;    scp_path,&#xA;})&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;darktable ຈະຊອກຫາສະຄຣິບ (ຕາມກົດເກົານປົກກະຕິຂອງ lua) ໃນໂຟນເດີມາດຕະຖານ ບວກກັບ &lt;code&gt;$CONFIGDIR/lua/*.lua&lt;/code&gt;. ດັ່ງນັ້ນ ສະຄຣິບຂອງພວກເຮົາສາມາດເອີ້ນໃຊ້ໄດ້ງ່າຍໆໂດຍການເພີ່ມ &lt;code&gt;require &amp;quot;scp-storage&amp;quot;&lt;/code&gt; ໃນໄຟລ໌ &lt;em&gt;luarc&lt;/em&gt;. ໝາຍເຫດເພີ່ມເຕີມບາງຢ່າງ&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>ການເອີ້ນໃຊ້ lua ຈາກ dbus</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/calling-from-dbus/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/calling-from-dbus/</guid>
      <description>&lt;p&gt;ທ່ານສາມາດສົ່ງຄຳສັ່ງ lua ໄປຍັງ darktable ຜ່ານອິນເຕີເຟດ DBus ຂອງມັນໄດ້. ເມທອດ &lt;code&gt;org.darktable.service.Remote.Lua&lt;/code&gt; ຮັບພາຣາມິເຕີຂໍ້ຄວາມດຽວ ເຊິ່ງຈະຖືກຕີຄວາມໝາຍເປັນຄຳສັ່ງ lua. ຄຳສັ່ງຈະຖືກປະມວນຜົນໃນບໍລິບົດ lua ປັດຈຸບັນ ແລະ ຄວນສົ່ງຄືນເປັນ nil ຫຼື ຂໍ້ຄວາມ. ຜົນລັດຈະຖືກສົ່ງກັບຄືນເປັນຜົນຂອງເມທອດ DBus.&lt;/p&gt;&#xA;&lt;p&gt;ຫາກການເອີ້ນໃຊ້ Lua ເກີດຂໍ້ຜິດພາດ, ເມທອດ DBus ຈະສົ່ງຄືນຂໍ້ຜິດພາດ &lt;code&gt;org.darktable.Error.LuaError&lt;/code&gt; ພ້ອມກັບຂໍ້ຄວາມຂໍ້ຜິດພາດຂອງ lua ທີ່ຕິດມາກັບຂໍ້ຜິດພາດ DBus ນັ້ນ.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ການໃຊ້ darktable ຈາກສະຄຣິບ lua</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/darktable-from-lua/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/darktable-from-lua/</guid>
      <description>&lt;p&gt;&lt;em&gt;ຄຳເຕືອນ: ຄຸນສົມບັດນີ້ຍັງຢູ່ໃນຂັ້ນຕອນທົດລອງ. ເປັນທີ່ຊາບກັນດີວ່າບາງອົງປະກອບຍັງບໍ່ທັນເຮັດວຽກໃນໂໝດ library. ແນະນຳໃຫ້ມີການທົດສອບຢ່າງລະມັດລະວັງ.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;ອິນເຕີເຟດ lua ຊ່ວຍໃຫ້ທ່ານສາມາດໃຊ້ darktable ຈາກສະຄຣິບ lua ໃດກໍໄດ້. ອັນນີ້ຈະໂຫຼດ darktable ເປັນ library ແລະ ໃຫ້ບໍລິການ lua API ສ່ວນໃຫຍ່ (darktable ຖືກກຳນົດຄ່າແບບ headless, ດັ່ງນັ້ນຟັງຊັນທີ່ກ່ຽວກັບອິນເຕີເຟດຜູ້ໃຊ້ຈຶ່ງບໍ່ມີໃຫ້ໃຊ້).&lt;/p&gt;&#xA;&lt;p&gt;ຕົວຢ່າງ: ໂປຣແກຣມຕໍ່ໄປນີ້ຈະພິມລາຍຊື່ຮູບພາບທັງໝົດໃນ library ຂອງທ່ານ:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#!/usr/bin/env lua&#xA;package = require &amp;#34;package&amp;#34;&#xA;package.cpath=package.cpath..&amp;#34;;./lib/darktable/lib?.so&amp;#34;&#xA;&#xA;dt = require(&amp;#34;darktable&amp;#34;)(&#xA;&amp;#34;--library&amp;#34;, &amp;#34;./library.db&amp;#34;,&#xA;&amp;#34;--datadir&amp;#34;, &amp;#34;./share/darktable&amp;#34;,&#xA;&amp;#34;--moduledir&amp;#34;, &amp;#34;./lib/darktable&amp;#34;,&#xA;&amp;#34;--configdir&amp;#34;, &amp;#34;./configdir&amp;#34;,&#xA;&amp;#34;--cachedir&amp;#34;,&amp;#34;cachedir&amp;#34;,&#xA;&amp;#34;--g-fatal-warnings&amp;#34;)&#xA;&#xA;require(&amp;#34;darktable.debug&amp;#34;)&#xA;&#xA;for k,v in ipairs(dt.database) do&#xA;   print(tostring(v))&#xA;end&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ສັງເກດແຖບທີສາມທີ່ຊີ້ໄປຍັງຕຳແໜ່ງຂອງໄຟລ໌ &lt;code&gt;libdarktable.so&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;ນອກຈາກນັ້ນ, ໝາຍເຫດວ່າການເອີ້ນໃຊ້ require ຈະສົ່ງຄືນຟັງຊັນທີ່ເອີ້ນໃຊ້ໄດ້ພຽງຄັ້ງດຽວ ແລະ ຊ່ວຍໃຫ້ທ່ານຕັ້ງພາຣາມິເຕີຄຳສັ່ງຂອງ darktable ໄດ້. ພາຣາມິເຕີ &lt;code&gt;:memory:&lt;/code&gt; ສຳລັບ &lt;code&gt;--library&lt;/code&gt; ມີປະໂຫຍດໃນກໍລະນີທີ່ທ່ານບໍ່ຕ້ອງການເຮັດວຽກກັບ library ສ່ວນຕົວຂອງທ່ານ.&lt;/p&gt;</description>
    </item>
    <item>
      <title>lua API</title>
      <link>https://docs.darktable.org/usermanual/development/lo/lua/api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://docs.darktable.org/usermanual/development/lo/lua/api/</guid>
      <description>&lt;p&gt;Lua API ຂອງ darktable ແມ່ນມີການບັນທຶກໄວ້ໃນຄູ່ມືສະເພາະຂອງມັນເອງ ເຊິ່ງມີລາຍລະອຽດຂອງໂຄງສ້າງຂໍ້ມູນ ແລະ ຟັງຊັນທັງໝົດ. ທ່ານສາມາດດາວໂຫຼດຄູ່ມື API ໄດ້ຈາກ &lt;a href=&#34;https://www.darktable.org/resources/&#34; target=&#34;_blank&#34;&gt;ທີ່ນີ້&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
