diff --git a/app/models/document.rb b/app/models/document.rb
index f49bc18..b935a25 100644
--- a/app/models/document.rb
+++ b/app/models/document.rb
@@ -101,5 +101,32 @@ class Document < ActiveRecord::Base
end
end
end
-
+ def maketoc
+ require "open3"
+ require "json"
+ sin,sout,serr=Open3.popen3("python #{Rails.root}/bin/maketoc.py")
+ sin.puts(self.text)
+ sin.close
+ b=sout.read()
+ c=JSON.parse(b)
+ l=2
+ f=true;
+ s="
"
+ c.each do |h|
+ s=s+ "
"*(l-h["level"]) if (h["level"]" if (h["level"]==l) and !f
+ if (h["level"]>l)
+ s=s + "- " * (h["level"]-l)
+ else
+ s=s+"
- "
+ end
+ s=s+h["text"]
+
+ l = h["level"]
+ f=false
+ end
+ s=s+"
"*(l-2) if (l>2)
+ s=s+""
+ self.toc=s
+ end
end
diff --git a/app/views/documents/show.html.erb b/app/views/documents/show.html.erb
index db59eec..dff248d 100644
--- a/app/views/documents/show.html.erb
+++ b/app/views/documents/show.html.erb
@@ -11,6 +11,7 @@
+<%= @document.toc %>
<%= @document.name %>
diff --git a/db/migrate/20150504121709_add_toc_to_documents.rb b/db/migrate/20150504121709_add_toc_to_documents.rb
new file mode 100644
index 0000000..22ec343
--- /dev/null
+++ b/db/migrate/20150504121709_add_toc_to_documents.rb
@@ -0,0 +1,5 @@
+class AddTocToDocuments < ActiveRecord::Migration
+ def change
+ add_column :documents, :toc, :text
+ end
+end