diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a3547cd98b25..3f87a3a053dd 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -163,6 +163,25 @@ jobs: with: name: C-docs path: ./bindings/c/docs/doxygen/html + build-lua-doc: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Setup lua-ldoc + run: sudo apt-get install lua-ldoc + + - name: Build Docs + working-directory: "bindings/lua" + run: ldoc ./src + + - name: Upload docs + uses: actions/upload-artifact@v3 + with: + name: lua-docs + path: ./bindings/lua/doc/ + build-website: runs-on: ubuntu-latest @@ -216,6 +235,12 @@ jobs: name: C-docs path: ./website/static/docs/c + - name: Download lua docs + uses: actions/download-artifact@v3 + with: + name: lua-docs + path: ./website/static/docs/lua + - name: Install Dependencies working-directory: website run: yarn install --immutable diff --git a/bindings/lua/src/metadata_doc.lua b/bindings/lua/src/metadata_doc.lua new file mode 100644 index 000000000000..95d63baacd03 --- /dev/null +++ b/bindings/lua/src/metadata_doc.lua @@ -0,0 +1,41 @@ +--[[ + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +]] + + +--- OpenDAL metadata It must be returned operator::stat() +-- @classmod opendal.metadata +-- @pragma nostrip + +local _M = {} + +--- Return whether the path represents a file +-- @return bool if it is file, otherwise false +-- @function is_file + +--- Return whether the path represents a directory +-- @return bool if it is directory, otherwise false +-- @function is_dir + +--- Return the content_length of the metadata +-- @return bool if it is directory, otherwise false +-- @function content_length + +return _M diff --git a/bindings/lua/src/operator_doc.lua b/bindings/lua/src/operator_doc.lua new file mode 100644 index 000000000000..f863cc4f4926 --- /dev/null +++ b/bindings/lua/src/operator_doc.lua @@ -0,0 +1,69 @@ +--[[ + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +]] + +--- OpenDAL operator. +-- @classmod opendal.operator +-- @pragma nostrip + +local _M = {} + +--- Construct an operator based on scheme and option. Uses an table of key-value pairs to initialize +--- the operator based on provided scheme and options. For each scheme, i.e. Backend, +--- different options could be set, you may reference the https://opendal.apache.org/docs/category/services/ +--- for each service, especially for the **Configuration Part**. +-- @param string scheme the service scheme you want to specify, e.g. "fs", "s3", "supabase" +-- @param table options the table to the options for this operators +-- @return table, error opendal operator table which contain opendal operator instance, error nil if success, others otherwise +-- @function new + + +--- Blockingly write raw bytes to path. +--- Write the bytes into the path blockingly, returns nil if success, others otherwise +-- @param string path the designated path you want to write your bytes in +-- @param string bytes the bytes to be written +-- @return error nil if success, otherwise error message +-- @function write + +--- Blockingly read raw bytes from path. +--- Read the data out from `path` blockingly by operator, returns the string if success, others otherwise +-- @param string path the designated path you want to write your bytes in +-- @return string, error read data, error nil if success, otherwise error message +-- @function read + +--- Blockingly delete the object in path. +--- Delete the object in path blockingly, returns error nil +--- if success, others otherwise +-- @param string path the designated path you want to write your delete +-- @return error error nil if success, otherwise error message +-- @function delete + +--- Check whether the path exists. +-- @param string path the designated path you want to write your delete +-- @return bool, error true or false depend on operator instance and path, error nil if success, otherwise error message +-- @function is_exist + +--- Stat the path, return its metadata. +-- @param string ,path the designated path you want to write your delete +-- @return table , error opendal.metadata instance table, error nil if success, otherwise error message +-- @function stat + + +return _M diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index fb0c70891ca9..65a8bd67d61f 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -129,6 +129,10 @@ const config = { label: 'C Binding', to: 'pathname:///docs/c/' }, + { + label: 'Lua Binding', + to: 'pathname:///docs/lua/' + }, ] }, {