-- Sample1.sql
-- -----------
-- This SQL does something!!
-- A definition of sample_table shown below.
-- =============== =========== ============
-- Column Name Type Description
-- =============== =========== ============
-- foo TEXT foo?
-- bar TEXT bar?
-- baz FLOAT baz?
-- =============== =========== ============
-- :NOTE: just return 10 records
-- :TODO: just return 11 records
-- .. code-block:: sql
-- :linenos:
SELECT
*
FROM
sample_table
LIMIT 10;
-- Sample2.sql
-- -----------
-- This SQL extract data from columns named foo, bar...
-- :NOTE: just return 10 records
-- :TODO: just return 11 records
-- .. code-block:: sql
-- :linenos:
SELECT
foo,
bar
FROM
sample_table
LIMIT 11;
As you can see above, there are rst formatted comments in sql scripts. If you write this kind of comments in sql scripts, you can easily convert them to html/latex-styled pdf! Below shell scripts can convert above sql scripts into one rst document.
#!/bin/sh
# convert_sql2rst.sh
output_rst="sample.rst"
if [ -e ${output_rst} ]; then
rm ${output_rst}
fi
echo "=======================" >> ${output_rst}
echo "This is sample chapter!" >> ${output_rst}
echo "=======================" >> ${output_rst}
echo "" >> ${output_rst}
for sql_file in `ls *.sql`
do
echo "converting ${sql_file} to rst-formatted document..."
sed ${sql_file} -e 's/^/ /g' | \
sed -e 's/^ -- //g' >> ${output_rst}
echo "" >> ${output_rst}
echo "" >> ${output_rst}
done
Now, put all of above scripts into same sphinx-root directory and edit your index.rst for including ${output_rst}. Next, do this:
yaboo@maniac:~/Projects/SqlProject$ sh convert_sql2rst.sh converting sample.sql to rst-formatted document... converting sample2.sql to rst-formatted document... yaboo@maniac:~/Projects/SqlProject$ make html sphinx-build -b html -d _build/doctrees . _build/html Making output directory... Running Sphinx v1.0.7 loading pickled environment... not yet created building [html]: targets for 2 source files that are out of date updating environment: 2 added, 0 changed, 0 removed reading sources... [100%] sample looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done writing output... [100%] sample writing additional files... genindex search copying static files... done dumping search index... done dumping object inventory... done build succeeded. Build finished. The HTML pages are in _build/html.
Finally, you can get document like this.

No comments:
Post a Comment